サイズ: 4004
コメント:
|
サイズ: 2953
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 4: | 行 4: |
* いい加減勉強する。コードを書く。 | * いい加減勉強する。コードを書く |
行 25: | 行 25: |
XMotionEvent xmotion; XCrossingEvent xcrossing; XFocusChangeEvent xfocus; XExposeEvent xexpose; XGraphicsExposeEvent xgraphicsexpose; XNoExposeEvent xnoexpose; XVisibilityEvent xvisibility; XCreateWindowEvent xcreatewindow; XDestroyWindowEvent xdestroywindow; XUnmapEvent xunmap; XMapEvent xmap; XMapRequestEvent xmaprequest; XReparentEvent xreparent; XConfigureEvent xconfigure; XGravityEvent xgravity; XResizeRequestEvent xresizerequest; XConfigureRequestEvent xconfigurerequest; XCirculateEvent xcirculate; XCirculateRequestEvent xcirculaterequest; XPropertyEvent xproperty; XSelectionClearEvent xselectionclear; XSelectionRequestEvent xselectionrequest; XSelectionEvent xselection; XColormapEvent xcolormap; XClientMessageEvent xclient; XMappingEvent xmapping; XErrorEvent xerror; XKeymapEvent xkeymap; XGenericEvent xgeneric; |
/* 中略。たくさんある */ |
2011/04/01
- 4月になってしまった
- kagisysは私がモタモタしているうちにハードウェアの方が進んできているので、そちらに歩調を合わせます
- いい加減勉強する。コードを書く
- socket programming
- X11 programming
Synaptics touchpad driver
タッチパッドのレスポンスが以前からよろしくない気がしていたので、synapticsのmanを読んだりここを読んだりしていた。MinSpeed、MaxSpeedの値をいじれば良さそうな気がするが、試しに適当に変えてみてもあまり変わった気がしない。静的なパラメータの変更はxorg.conf.d/10-synaptics.confに書けばできる。またsynclientコマンドを使えば動的に設定可能。もう少しパラメータの意味を探る必要あり。
X11、はじめました
とりあえずウィンドウを出す所までは行った。Win32APIを叩いていた頃の記憶がよみがえるような気がする。手始めに練習として、xmma(MMAのロゴを表示する。元ネタは言うまでもなくxlogo)を作ろうと思う。
- どうやら、Win32APIの勘が結構生かせそうなので対比で学んでいくことにする
何よりも最初にXサーバとの接続を行う。XOpenDisplay() <-> XCloseDisplay()
- とりあえず何でも送られてくるWin32とは違って、欲しいイベントを最初に通知しておく
- 拾わなかったものはどうやら祖先に送られるらしい
MappingNotifyイベントは問答無用で全てのクライアントに届くらしい。これがどういうものかはまだ分からない
XEvent共用体というのがWin32でいうところのMSG構造体に当たるようだ。何か凄まじい宣言がなされている。以下Xlib.hから引用
typedef union _XEvent { int type; /* must not be changed; first element */ XAnyEvent xany; XKeyEvent xkey; XButtonEvent xbutton; /* 中略。たくさんある */ XGenericEventCookie xcookie; long pad[24]; } XEvent;
XなになにEvent構造体はすべて先頭の要素にtypeを持っているために、typeを見ることでどのイベントか判別できるようだ
- 個人的には、それをやるなら以下のようにするかなあと思うけど、まあ面倒になるだけか
typedef struct _XEvent { int type; union { XAnyEvent xany; /* ... */ long pad[24]; } u; } XEvent;
- 個人的には、それをやるなら以下のようにするかなあと思うけど、まあ面倒になるだけか
long pad[24];は境界整合性を確保するための詰め物か。unionなので、他のメンバがpadより小さければXEventのサイズはpadのサイズに従うはず