• 検索結果がありません。

メニューバー

ドキュメント内 ÆþÌçGTK+ (ページ 162-169)

第 7 章 ウィジェットリファレンス 113

7.4 メニューウィジェット

7.4.1 メニューバー

メニューバーウィジェット(GtkMenuBar)は,ウィンドウの上部などに配置して,さまざまな操作を支援するウィジェット です(図7.17).

図7.17 メニューバー

オブジェクトの階層構造 G O b j e c t

+ - - - -G I n i t i a l l y U n o w n e d + - - - -G t k O b j e c t

+ - - - -G t k W i d g e t

+ - - - -G t k C o n t a i n e r + - - - -G t k M e n u S h e l l

+ - - - -G t k M e n u B a r

ウィジェットの作成

メニューバーの作成には関数gtk menu bar newを使用します.

G t k W i d g e t* g t k _ m e n u _ b a r _ n e w (v o i d) ;

メニューバーウィジェットは単にメニューを配置するためのウィジェットです.メニューを作成するには,関数gtk menu new でメニューウィジェットを作成し,関数gtk menu item newなどを使って作成したメニューアイテムを,メニューウィジェッ トに配置します.

G t k W i d g e t* g t k _ m e n u _ n e w (v o i d) ;

メニューアイテムの作成

メニューアイテムには大きく分類して5種類のメニューアイテムがあります.

1. 普通のメニューアイテム

ラベルで構成されるメニューアイテムです.メニューアイテムを作成する関数には,次の3つの関数があります.

gtk menu item new

ラベルのないメニューアイテムを作成します.あまり使用することはないでしょう.

G t k W i d g e t* g t k _ m e n u _ i t e m _ n e w (v o i d) ;

gtk menu item new with label

ラベルのみのメニューアイテムを作成します.

G t k W i d g e t* g t k _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l (c o n s t g c h a r * l a b e l ) ;

gtk menu item new with mnemonic

アクセラレータ機能付きのラベルを持ったメニューアイテムを作成します.

G t k W i d g e t* g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c (c o n s t g c h a r * l a b e l ) ; 2. アイコン付きのメニューアイテム

gtk image menu item new

アイコン付きのメニューアイテム(ラベルなし)を作成します.この関数でメニューアイテムを作成した時点ではア イコンは登録されていません.

G t k W i d g e t* g t k _ i m a g e _ m e n u _ i t e m _ n e w (v o i d) ;

このメニューアイテムにアイコンを登録するには,関数gtk image newなどでアイコンデータを作成して,関数 gtk image menu item set imageを呼び出します.

v o i d g t k _ i m a g e _ m e n u _ i t e m _ s e t _ i m a g e

(G t k I m a g e M e n u I t e m * i m a g e _ m e n u _ i t e m , G t k W i d g e t * i m a g e ) ; アイコンの登録の例を以下に示します.

G t k W i d g e t * i t e m ; G t k W i d g e t * i m a g e ; i m a g e =

g t k _ i m a g e _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ O K , G T K _ I C O N _ S I Z E _ M E N U ) ; i t e m = g t k _ i m a g e _ m e n u _ i t e m _ n e w ( ) ;

g t k _ i m a g e _ m e n u _ i t e m _ s e t _ i m a g e ( G T K _ I M A G E _ M E N U _ I T E M ( i t e m ) , i m a g e ) ;

gtk image menu item new with label

ラベル付きのアイコンメニューアイテムを作成します.アイコンの登録方法は上記の方法と同様です.

G t k W i d g e t*

g t k _ i m a g e _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l (c o n s t g c h a r * l a b e l ) ;

gtk image menu item new with mnemonic

アクセラレータ機能のあるラベル付きのアイコンメニューアイテムを作成します.アイコンの登録方法は上記の方法 と同様です.

G t k W i d g e t*

g t k _ i m a g e _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c (c o n s t g c h a r * l a b e l ) ;

gtk image menu item new from stock

GtkStockItemで定義された文字列を指定してアイコンメニューアイテムを作成します.自動的にショートカットも

設定されるので,関数の引数にはGtkAccelGroup型の変数も与えます.

G t k W i d g e t*

g t k _ i m a g e _ m e n u _ i t e m _ n e w _ f r o m _ s t o c k (c o n s t g c h a r * s t o c k _ i d , G t k A c c e l G r o u p * a c c e l _ g r o u p ) ; 3. チェックボタンのメニューアイテム

gtk check menu item new

ラベルなしのチェックボタンメニューアイテムを作成します.

G t k W i d g e t* g t k _ c h e c k _ m e n u _ i t e m _ n e w (v o i d) ;

gtk check menu item new with label

ラベル付きのチェックボタンメニューアイテムを作成します.

G t k W i d g e t*

g t k _ c h e c k _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l (c o n s t g c h a r * l a b e l ) ;

gtk check menu item new with mnemonic

アクセラレータ機能のあるラベル付きのチェックボタンメニューアイテムを作成します.

G t k W i d g e t*

g t k _ c h e c k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c (c o n s t g c h a r * l a b e l ) ;

チェックメニューアイテムのチェック状態を設定するには,関数gtk check menu item set activeを使用します.

v o i d

g t k _ c h e c k _ m e n u _ i t e m _ s e t _ a c t i v e (G t k C h e c k M e n u I t e m * c h e c k _ m e n u _ i t e m , g b o o l e a n i s _ a c t i v e ) ; 4. ラジオボタンのメニューアイテム

gtk radio menu item new

ラベルなしのラジオボタンメニューアイテムを作成します.新しいグループのメニューアイテムを作成する場合に は,引数にNULLを与えます.

G t k W i d g e t* g t k _ r a d i o _ m e n u _ i t e m _ n e w (G S L i s t * g r o u p ) ;

gtk radio menu item new from widget

ラベルなしのラジオボタンメニューアイテムを作成します.既にあるラジオボタンメニューアイテムを引数に与える ことによって,そのアイテムと同じグループのラジオボタンメニューアイテムを作成します.

G t k W i d g e t*

g t k _ r a d i o _ m e n u _ i t e m _ n e w _ f r o m _ w i d g e t (G t k R a d i o M e n u I t e m * g r o u p ) ;

gtk radio menu item new with label

ラベル付きのラジオボタンメニューアイテムを作成します.新しいグループのメニューアイテムを作成する場合に は,引数にNULLを与えます.

G t k W i d g e t*

g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l (G S L i s t * g r o u p , c o n s t g c h a r * l a b e l ) ;

gtk radio menu item new with label from widget

ラベル付きのラジオボタンメニューアイテムを作成します.既にあるラジオボタンメニューアイテムを引数に与える ことによって,そのアイテムと同じグループのラジオボタンメニューアイテムを作成します.

G t k W i d g e t*

g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l _ f r o m _ w i d g e t

(G t k R a d i o M e n u I t e m * g r o u p , c o n s t g c h a r * l a b e l ) ;

gtk radio menu item new with mnemonic

アクセラレータ機能のあるラベル付きのラジオボタンメニューアイテムを作成します.

G t k W i d g e t*

g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c (G S L i s t * g r o u p , c o n s t g c h a r * l a b e l ) ;

gtk radio menu item new with mnemonic from widget

アクセラレータ機能のあるラベル付きのラジオボタンメニューアイテムを作成します.既にあるラジオボタンメ ニューアイテムを引数に与えることによって,そのアイテムと同じグループのラジオボタンメニューアイテムを作成 します.

G t k W i d g e t*

g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c _ f r o m _ w i d g e t

(G t k R a d i o M e n u I t e m * g r o u p , c o n s t g c h a r * l a b e l ) ; 5. その他のメニューアイテム

セパレータやティアオフアイテム(切り離し可能アイテム)です.

gtk separator menu item new

G t k W i d g e t* g t k _ s e p a r a t o r _ m e n u _ i t e m _ n e w (v o i d) ;

gtk tearoff menu item new

G t k W i d g e t* g t k _ t e a r o f f _ m e n u _ i t e m _ n e w (v o i d) ;

ショートカットキーの設定

メニューアイテムには,そのメニューアイテムを選択しなくてもその操作を実行できるように,ショートカットキーが設定さ れていることがよくあります.関数gtk image menu item new from stockを使ってメニューアイテムを作成すると,そのス トックアイテムに対応したショートカットキーが自動的に設定されます.その他の関数でメニューアイテムを作成した場合に は,関数gtk widget add acceleratorを使ってメニューアイテムにショートカットを設定します.

v o i d g t k _ w i d g e t _ a d d _ a c c e l e r a t o r (G t k W i d g e t * w i d g e t , c o n s t g c h a r * a c c e l _ s i g n a l , G t k A c c e l G r o u p * a c c e l _ g r o u p ,

g u i n t a c c e l _ k e y ,

G d k M o d i f i e r T y p e a c c e l _ m o d s , G t k A c c e l F l a g s a c c e l _ f l a g s ) ;

第1引数 ショートカットを設定するウィジェット

第2引数 ショートカットキーが押されたときに発生させるシグナル 第3引数 アクセラレータグループ

第4引数 ショートカットキー 第5引数 装飾子

第6引数 アクセラレータフラグ

ショートカットキーの設定例をソース7–4–1に示します.ショートカットキーGDK O,装飾子GDK CONTROL MASK を指定することで,CTRL+O(コントロールキーを押しながらo)がショートカットとして設定されます.GtkAccelGroup

は,ショートカットキーを一括管理するためのものと考えてください.

ソース7-4-1 ショートカットキー設定のサンプル

1 G t k W i d g e t * i t e m ;

2 G t k A c c e l G r o u p * a c c e l _ g r o u p ;

3

4 a c c e l _ g r o u p = g t k _ a c c e l _ g r o u p _ n e w ( ) ;

5 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ O p e n " ) ;

6 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

7 G D K _ O , G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

GdkModifierTypeは次のように定義されています.

t y p e d e f e n u m {

G D K _ S H I F T _ M A S K = 1 < < 0 , G D K _ L O C K _ M A S K = 1 < < 1 , G D K _ C O N T R O L _ M A S K = 1 < < 2 , G D K _ M O D 1 _ M A S K = 1 < < 3 , G D K _ M O D 2 _ M A S K = 1 < < 4 , G D K _ M O D 3 _ M A S K = 1 < < 5 , G D K _ M O D 4 _ M A S K = 1 < < 6 , G D K _ M O D 5 _ M A S K = 1 < < 7 , G D K _ B U T T O N 1 _ M A S K = 1 < < 8 , G D K _ B U T T O N 2 _ M A S K = 1 < < 9 , G D K _ B U T T O N 3 _ M A S K = 1 < < 10 , G D K _ B U T T O N 4 _ M A S K = 1 < < 11 , G D K _ B U T T O N 5 _ M A S K = 1 < < 12 , G D K _ R E L E A S E _ M A S K = 1 < < 30 ,

G D K _ M O D I F I E R _ M A S K = G D K _ R E L E A S E _ M A S K | 0 x 1 f f f } G d k M o d i f i e r T y p e;

GtkAccelFlagsは次のように定義されています.

t y p e d e f e n u m {

G T K _ A C C E L _ V I S I B L E = 1 < < 0 , G T K _ A C C E L _ L O C K E D = 1 < < 1 , G T K _ A C C E L _ M A S K = 0 x 0 7 } G t k A c c e l F l a g s;

シ ョ ー ト カ ッ ト キ ー を メ ニ ュ ー に 表 示 す る 場 合 に は ,GTK ACCEL VISIBLE を 指 定 し ま す .ま た ,設 定 し た キ ー を 固 定 す る た め に は GTK ACCEL LOCKED を 指 定 し ま す .両 方 設 定 し た い 場 合 に は ,GTK ACCEL VISIBLE |

GTK ACCEL LOCKEDのように論理和で指定するか,GTK ACCEL MASKを指定します.

階層的なメニューの作成

1つのメニューの中にさらに階層的にサブメニューを作成することはよくあります. サブメニューを作成するには,関数 gtk menu item set submenuを使います.

v o i d g t k _ m e n u _ i t e m _ s e t _ s u b m e n u (G t k M e n u I t e m * m e n u _ i t e m , G t k W i d g e t * s u b m e n u ) ; サブメニュー作成の手順は以下のようになります.

1. 親メニューの作成

m e n u = g t k _ m e n u _ n e w ( ) ; 2. メニューアイテムの作成&セット

i t e m = g t k _ m e n u _ i t e m _ n e w ( ) ;

g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

3. サブメニューの作成

s u b m e n u = g t k _ m e n u _ n e w ( ) ; 4. サブメニューのセット

g t k _ m e n u _ i t e m _ s e t _ s u b m e n u ( G T K _ M E N U _ I T E M ( i t e m ) , s u b m e n u ) ; 5. サブメニューアイテムの作成&セット

s u b i t e m = g t k _ m e n u _ i t e m _ n e w ( ) ;

g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( s u b m e n u ) , s u b i t e m ) ;

サンプルプログラム

ソース7–4–2に,図7.17のメニューを作成するソースを示します.左端のFileメニューは,普通のメニューアイテムで構成

されています.真ん中のEditメニューは,アイコン付きのメニューアイテムです.右端のViewメニューは,チェックメニュー アイテムとラジオメニューアイテム,サブメニューの例です.

こ の プ ロ グ ラ ム で は メ ニ ュ ー に 設 定 し た シ ョ ー ト カ ッ ト キ ー を 親 ウ ィ ン ド ウ に 登 録 す る こ と で ,親 ウ ィ ン ド ウ 上 で 設 定 し た シ ョ ー ト カ ッ ト キ ー を 有 効 に し て い ま す .ウ ィ ン ド ウ 上 で シ ョ ー ト カ ッ ト キ ー を 有 効 に す る に は ,関 数 gtk window add accel groupを使用します.

v o i d g t k _ w i n d o w _ a d d _ a c c e l _ g r o u p (G t k W i n d o w * w i n d o w , G t k A c c e l G r o u p * a c c e l _ g r o u p ) ;

ソース7-4-2 メニューバーのサンプルプログラム: gtkmenubar-sample.c

1 # i n c l u d e <g t k / g t k . h >

2 # i n c l u d e <g d k / g d k k e y s y m s . h >

3

4 s t a t i c v o i d

5 c b _ q u i t (G t k W i d g e t * w i d g e t , g p o i n t e r d a t a )

6 {

7 g t k _ m a i n _ q u i t ( ) ;

8 }

9

10 s t a t i c G t k W i d g e t*

11 c r e a t e _ m e n u (v o i d)

12 {

13 G t k W i d g e t * m e n u b a r ;

14 G t k W i d g e t * m e n u ;

15 G t k W i d g e t * i t e m ;

16 G t k W i d g e t * i m a g e ;

17 G t k A c c e l G r o u p * a c c e l _ g r o u p ;

18 G S L i s t * g r o u p = N U L L ;

19

20 m e n u b a r = g t k _ m e n u _ b a r _ n e w ( ) ;

21 a c c e l _ g r o u p = g t k _ a c c e l _ g r o u p _ n e w ( ) ;

22

23 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ F i l e " ) ;

24 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u b a r ) , i t e m ) ;

25 m e n u = g t k _ m e n u _ n e w ( ) ;

26 g t k _ m e n u _ i t e m _ s e t _ s u b m e n u ( G T K _ M E N U _ I T E M ( i t e m ) , m e n u ) ;

27 {

28 i t e m = g t k _ t e a r o f f _ m e n u _ i t e m _ n e w ( ) ;

29 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

30

31 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ N e w " ) ;

32 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

33 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

34 G D K _ N ,

35 G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

36

37 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ O p e n " ) ;

38 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

39 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

40 G D K _ O ,

41 G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

42

43 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ S a v e " ) ;

44 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

45 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

46 G D K _ S ,

47 G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

48

49 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " S a v e _ a s " ) ;

50 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

51 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

52 G D K _ S ,

53 G D K _ C O N T R O L _ M A S K | G D K _ S H I F T _ M A S K ,

54 G T K _ A C C E L _ V I S I B L E ) ;

55

56 i t e m = g t k _ s e p a r a t o r _ m e n u _ i t e m _ n e w ( ) ;

57 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

58

59 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ Q u i t " ) ;

60 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

61 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

62 G D K _ Q ,

63 G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

64 g _ s i g n a l _ c o n n e c t ( G _ O B J E C T ( i t e m ) , " a c t i v a t e " ,

65 G _ C A L L B A C K ( c b _ q u i t ) , N U L L ) ;

66 }

67 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ E d i t " ) ;

68 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u b a r ) , i t e m ) ;

69 m e n u = g t k _ m e n u _ n e w ( ) ;

70 g t k _ m e n u _ i t e m _ s e t _ s u b m e n u ( G T K _ M E N U _ I T E M ( i t e m ) , m e n u ) ;

71 {

72 i t e m = g t k _ t e a r o f f _ m e n u _ i t e m _ n e w ( ) ;

73 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

74

75 i t e m = g t k _ i m a g e _ m e n u _ i t e m _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ C U T ,

76 a c c e l _ g r o u p ) ;

77 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

78

79 i t e m = g t k _ i m a g e _ m e n u _ i t e m _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ C O P Y ,

80 a c c e l _ g r o u p ) ;

81 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

82

83 i t e m = g t k _ i m a g e _ m e n u _ i t e m _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ P A S T E ,

84 a c c e l _ g r o u p ) ;

85 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

86

87 i t e m = g t k _ i m a g e _ m e n u _ i t e m _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ D E L E T E ,

88 a c c e l _ g r o u p ) ;

89 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

90 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

91 G D K _ D ,

92 G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

93 }

94 i t e m = g t k _ m e n u _ i t e m _ n e w _ w i t h _ m n e m o n i c ( " _ V i e w " ) ;

95 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u b a r ) , i t e m ) ;

96 m e n u = g t k _ m e n u _ n e w ( ) ;

97 g t k _ m e n u _ i t e m _ s e t _ s u b m e n u ( G T K _ M E N U _ I T E M ( i t e m ) , m e n u ) ;

98 {

99 i t e m = g t k _ t e a r o f f _ m e n u _ i t e m _ n e w ( ) ;

100 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

101

102 i t e m = g t k _ c h e c k _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l ( " S h o w H i d d e n F o l d e r s " ) ;

103 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

104 g t k _ w i d g e t _ a d d _ a c c e l e r a t o r ( i t e m , " a c t i v a t e " , a c c e l _ g r o u p ,

105 G D K _ H ,

106 G D K _ C O N T R O L _ M A S K , G T K _ A C C E L _ V I S I B L E ) ;

107

108 i t e m = g t k _ i m a g e _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l ( " S o r t b y . . . " ) ;

109 i m a g e = g t k _ i m a g e _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ S O R T _ A S C E N D I N G ,

110 G T K _ I C O N _ S I Z E _ M E N U ) ;

111 g t k _ i m a g e _ m e n u _ i t e m _ s e t _ i m a g e ( G T K _ I M A G E _ M E N U _ I T E M ( i t e m ) , i m a g e ) ;

112 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

113 m e n u = g t k _ m e n u _ n e w ( ) ;

114 g t k _ m e n u _ i t e m _ s e t _ s u b m e n u ( G T K _ M E N U _ I T E M ( i t e m ) , m e n u ) ;

115 {

116 i t e m = g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l ( g r o u p , " F i l e t y p e " ) ;

117 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

118 g t k _ c h e c k _ m e n u _ i t e m _ s e t _ a c t i v e ( G T K _ C H E C K _ M E N U _ I T E M ( i t e m ) , T R U E ) ;

119

120 g r o u p = g t k _ r a d i o _ m e n u _ i t e m _ g e t _ g r o u p ( G T K _ R A D I O _ M E N U _ I T E M ( i t e m ) ) ;

121 i t e m = g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l ( g r o u p , " F i l e s i z e " ) ;

122 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

123

124 g r o u p = g t k _ r a d i o _ m e n u _ i t e m _ g e t _ g r o u p ( G T K _ R A D I O _ M E N U _ I T E M ( i t e m ) ) ;

125 i t e m = g t k _ r a d i o _ m e n u _ i t e m _ n e w _ w i t h _ l a b e l ( g r o u p , " U p d a t e t i m e " ) ;

126 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( m e n u ) , i t e m ) ;

127 }

128 }

129 r e t u r n m e n u b a r ;

130 }

131 132 i n t

133 m a i n (i n t a r g c , c h a r * * a r g v )

134 {

135 G t k W i d g e t * w i n d o w ;

136 G t k W i d g e t * m e n u b a r ;

137

138 g t k _ i n i t ( & a r g c , & a r g v ) ;

139

140 w i n d o w = g t k _ w i n d o w _ n e w ( G T K _ W I N D O W _ T O P L E V E L ) ;

141 g t k _ w i n d o w _ s e t _ t i t l e ( G T K _ W I N D O W ( w i n d o w ) , " G t k M e n u b a r S a m p l e " ) ;

142 g t k _ w i d g e t _ s e t _ s i z e _ r e q u e s t ( w i n d o w , 3 0 0 , -1);

143 g t k _ c o n t a i n e r _ s e t _ b o r d e r _ w i d t h ( G T K _ C O N T A I N E R ( w i n d o w ) , 5 ) ;

144 g _ s i g n a l _ c o n n e c t ( G _ O B J E C T ( w i n d o w ) , " d e s t r o y " ,

145 G _ C A L L B A C K ( g t k _ m a i n _ q u i t ) , N U L L ) ;

146

147 m e n u b a r = c r e a t e _ m e n u ( ) ;

148 g t k _ c o n t a i n e r _ a d d ( G T K _ C O N T A I N E R ( w i n d o w ) , m e n u b a r ) ;

149

150 g t k _ w i d g e t _ s h o w _ a l l ( w i n d o w ) ;

151 g t k _ m a i n ( ) ;

152

153 r e t u r n 0 ;

154 }

ドキュメント内 ÆþÌçGTK+ (ページ 162-169)