V GUIライブラリ

Note.

(2011.8)

わざわざマイナなツールキット/フレームワークを利用することはないように思う。GTK+, QT, もしくはwxWidgets を利用すべき。

そもそも、objectcentral.com がなくなっている。もはやメンテナンスもされていない。

(2004.10.16更新。)

Vは,C++によるGUIツールキット。Windows, X11版がある。一つのソースからWindows版とX版を作れる、クロスプラットフォームなGUIツールキット。

インストール

configureコマンドはない。configsディレクトリにあるファイルのどれかをConfig.mkにコピーする。

Vバージョン1.90は、Makefileに誤りがある。make installLinuxでエラーになるので、適宜修正する。

--- home/vgui/Makefile	2003-01-29 03:13:40.000000000 +0900
+++ ../v-1.90/vgui/Makefile	2004-10-16 18:50:17.303927824 +0900
@@ -346,11 +346,11 @@
 	rm -f /usr/lib/$(LIBNAME).so
 	ln -s /usr/lib/$(LIBNAME).so.$(VV) /usr/lib/$(LIBNAME).so
 else
-	-chmod 644 $(LibDir)/*.a
-	cp $(LibDir)/*.a /usr/lib
+	-chmod 644 lib/*.a
+	cp lib/*.a /usr/lib
 endif
-	-chmod 755 $(Bin)/*
-	cp $(Bin)/* /usr/$(Xdir11)/bin
+	-chmod 755 bin/*
+	cp bin/* /usr/$(Xdir11)/bin
 
 .PHONY:	uninstalVlLinux
 uninstallVLinux:

インストール手順は次のとおり。これはAthenaウィジェットを使う場合。Motifを選ぶこともできる。

$ cp configs/ConfigX.mk Config.mk
$ make
$ su
# make installLinux

クラス図

アプリケーションを複数のプラットフォームで動かせるようになっているが、Windowsのみ、Xのみのクラスを使うと、当然クロスプラットフォームにはできない。

 ┌─────┐
 │  vCmd  │
 └─────┘
    △ 
    ├────┬───────┬───────┬────────┐
    │ ┌──┴───┐┌──┴───┐┌──┴───┐┌───┴───┐
    │ │vCheckBoxCmd││vSpinnerCmd ││vComboBoxCmd││vBoxedLabelCmd│
    │ └──────┘└──────┘└──────┘└{Win版のみ} ─┘
    │
    ├────┬──────┬──────┬──────┐
    │ ┌──┴──┐┌──┴──┐┌──┴──┐┌──┴──┐
    │ │ vTextCmd ││vTextInCmd││ vListCmd ││vFrameCmd │
    │ └─────┘└─────┘└─────┘└─────┘
    │
    ├────┬───────┬────────┐
    │ ┌──┴──┐┌───┴────┐┌──┴───┐
    │ │vSliderCmd││vRadioButtonCmd ││vProgressCmd│
    │ └─────┘└────────┘└──────┘
    │
    ├─────────┐
 ┌──┴──┐   ┌──┴──┐
 │vButtonCmd│   │vLabelCmd │
 └─────┘   └─────┘
    △         △
    │         │
┌───┴────┐┌───┴───┐
│vColorButtonCmd ││vColorLabelCmd│
└────────┘└───────┘
┌─────┐        ┌─────┐           ┌─────┐
│vBaseItem │        │vCmdParent│           │  vPane   │
└─────┘        └─────┘           └─────┘
   △              △                 △
   ├───────┐      │                 │
┌──┴───┐┌──┴──┐   │                 │
│vBaseWindow ││  vApp  │   │                 │
└──────┘└─────┘   │                 │
   △     ┌──┬─────┘                 │
   ├───┐ │  │  ┌─────┬──────┬───────┤
┌──┴──┐│ │┌─┴──┴─┐┌──┴──┐┌──┴───┐┌──┴───┐
│ vWindow  ││ ││vCommandPane││vMenuPane ││vStatusPane ││vCanvasPane │
└─────┘│ │└──────┘└─────┘└{X11版のみ} ┘└──────┘
   △   │ │                          △
   │   │ │                ┌─────────┤
┌──┴──┐│ │           ┌────┴────┐┌───┴────┐
│vCmdWindow││ │           │vBaseGLCanvasPane ││vTextCanvasPane │
└─────┘│ │           └─────────┘└────────┘
       │ │                          △
       │ │                          │
     ┌─┴─┴─┐                     ┌──┴───┐
     │ vDialog  │                     │vTextEditor │
     └─────┘                     └──────┘
        △  
        │  
     ┌──┴───┐
     │vModalDialog│
     └──────┘
         △  
   ┌─────┼─────────┬─────────┐
   │ ┌───┴────┐┌───┴────┐┌───┴───┐
   │ │  vFontSelect   ││  vFileSelect   ││vNoticeDialog │
   │ └{X11版のみ派生} ┘└{X11版のみ派生} ┘└───────┘
   │
   ├────┬────────┬───────┬───────┐
   │ ┌──┴───┐┌───┴───┐┌──┴───┐┌──┴───┐
   │ │vDebugDialog││vYNReplyDialog││vReplyDialog││vFindDialog │
   │ └──────┘└───────┘└──────┘└──────┘
   │
   │
┌──┴───┐┌──────┐
│ vPSPrinter ││vWinPrinter │
└{X11版のみ} ┘└{Win版のみ} ┘
   △       △
   └───┬───┘
    ┌──┴──┐
    │ vPrinter │
    └─────┘
 ┌─────┐
 │   vDC    │
 └─────┘
    △
    ├───────┬────────┐
 ┌──┴───┐┌──┴───┐┌───┴───┐
 │ v(X|Win)DC ││  vNullDC   ││vPostScriptDC │
 └{各UI版のみ}┘└{X11版のみ} ┘└{X11版のみ} ─┘
    △
    ├───────┬───────┐
┌───┴───┐┌──┴──┐┌───┴───┐
│vCanvasPaneDC ││vMemoryDC ││vWinPrinterDC │
└───────┘└─────┘└{Win版のみ} ─┘


┌─────┐┌─────┐┌─────┐┌─────┐┌─────┐
│   vPen   ││  vFont   ││  vColor  ││  vBrush  ││  vIcon   │
└─────┘└─────┘└─────┘└─────┘└─────┘


┌─────┐┌──────┐┌──────┐┌────────┐
│  vTimer  ││vAppWinInfo ││ vTipWindow ││vTextEdCmdInterp│
└─────┘└──────┘└{X11版のみ} ┘└────────┘


┌──────┐┌──────┐┌─────┐┌──────┐
│vNullPrinter││ vFontList  ││   vOS    ││ vThisList  │
└{X11版のみ} ┘└{X11版のみ} ┘└─────┘└{Win版のみ} ┘