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

メニューバー

ドキュメント内 表紙 (ページ 142-151)

第 6 章 ウィジェットリファレンス 83

6.4 メニューウィジェット

6.4.1 メニューバー

47 g t k _ s c r o l l e d _ w i n d o w _ s e t _ p o l i c y ( G T K _ S C R O L L E D _ W I N D O W ( s c r o l l e d w i n d o w ) ,

48 G T K _ P O L I C Y _ A U T O M A T I C ,

49 G T K _ P O L I C Y _ A U T O M A T I C ) ;

50 g t k _ b o x _ p a c k _ s t a r t ( G T K _ B O X ( v b o x ) , s c r o l l e d w i n d o w , T R U E , T R U E , 0 ) ;

51

52 t e x t v i e w = g t k _ t e x t _ v i e w _ n e w ( ) ;

53 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 c r o l l e d w i n d o w ) , t e x t v i e w ) ;

54 s e t _ t e x t ( G T K _ T E X T _ V I E W ( t e x t v i e w ) ,

55 " T h i s à i s à a às a m p l e à p r o g r a m à o f à G t k T e x t V i e w . \ n "

56 " G t k T e x t V i e w à i s à a à . . . \ n "

57 "このプログラムはG t k T e x t V i e wウ ィ ジ ェ ッ ト の サ ン プ ル\ n "

58 "プログラムです。" ) ;

59

60 h b o x = g t k _ h b o x _ n e w ( F A L S E , 5 ) ;

61 g t k _ b o x _ p a c k _ s t a r t ( G T K _ B O X ( v b o x ) , h b o x , F A L S E , F A L S E , 0 ) ;

62

63 b u t t o n = g t k _ b u t t o n _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ Q U I T ) ;

64 g _ s i g n a l _ c o n n e c t ( G _ O B J E C T ( b u t t o n ) , " c l i c k e d " ,

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

66 g t k _ b o x _ p a c k _ e n d ( G T K _ B O X ( h b o x ) , b u t t o n , F A L S E , F A L S E , 0 ) ;

67

68 b u t t o n = g t k _ b u t t o n _ n e w _ f r o m _ s t o c k ( G T K _ S T O C K _ A P P L Y ) ;

69 g _ s i g n a l _ c o n n e c t ( G _ O B J E C T ( b u t t o n ) , " c l i c k e d " ,

70 G _ C A L L B A C K ( p r i n t _ t e x t ) , (g p o i n t e r) t e x t v i e w ) ;

71 g t k _ b o x _ p a c k _ e n d ( G T K _ B O X ( h b o x ) , b u t t o n , F A L S E , F A L S E , 0 ) ;

72

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

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

75

76 r e t u r n 0 ;

77 }

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種類のメニューアイテムがあります.

普通のメニューアイテム

ラベルで構成されるメニューアイテムです. メニューアイテムを作成する関数には,次の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 ) ;

アイコン付きのメニューアイテム gtk image menu item new

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

図6.17 メニューバー

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 ) ;

チェックボタンのメニューアイテム 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 ) ;

ラジオボタンのメニューアイテム 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 ) ;

その他のメニューアイテム

セパレータやティアオフアイテム(切り離し可能アイテム)です. 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引数: アクセラレータフラグ

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

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

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

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

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 ( ) ;

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 " ) ;

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 ,

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 , / * d i s p l a y i n G t k A c c e l L a b e l ? * / G T K _ A C C E L _ L O C K E D = 1 < < 1 , / * i s i t r e m o v a b l e ? * /

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 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 ) ;

サンプルプログラム

図6.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 ) ;

ソース 6–4–1 メニューバーのサンプルプログラム: 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 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 ) {

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

6 }

7

8 s t a t i c G t k W i d g e t* c r e a t e _ m e n u (v o i d) {

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

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

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

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

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

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

15

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

17 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 ( ) ;

18

19 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 " ) ;

20 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 ) ;

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

22 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 ) ;

23 {

24 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 ( ) ;

25 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 ) ;

26

27 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 " ) ;

28 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 ) ;

29 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 ,

30 G D K _ N , 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 ) ;

31

32 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 " ) ;

33 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 ) ;

34 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 ,

35 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 ) ;

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 ( " _ S a v e " ) ;

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 _ S , 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 ) ;

41

42 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 " ) ;

43 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 ) ;

44 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 ,

45 G D K _ S , 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 ,

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

47

48 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 ( ) ;

49 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 ) ;

50

51 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 " ) ;

52 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 ) ;

53 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 ,

54 G D K _ Q , 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 ) ;

55 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 " , G _ C A L L B A C K ( c b _ q u i t ) , N U L L ) ;

56 }

57 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 " ) ;

58 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 ) ;

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

60 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 ) ;

61 {

62 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 ( ) ;

63 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 ) ;

64

65 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 , a c c e l _ g r o u p ) ;

66 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 ) ;

67

68 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 , a c c e l _ g r o u p ) ;

69 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 ) ;

70

71 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 , a c c e l _ g r o u p )

;

72 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 ) ;

73

74 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 , a c c e l _ g r o u p ) ;

75 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 ) ;

76 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 ,

77 G D K _ D , 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 ) ;

78 }

79 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 " ) ;

80 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 ) ;

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

82 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 ) ;

83 {

84 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 ( ) ;

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 _ 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 " ) ;

88 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 ) ;

89 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 ,

90 G D K _ H , 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 ) ;

91

92 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 à . . . " ) ;

93 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 ,

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

95 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 ) ;

96 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 ) ;

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

98 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 ) ;

99 {

100 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 " ) ;

101 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 ) ;

102 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 ) ;

103

104 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 ) ) ;

105 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 " ) ;

106 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 ) ;

107

108 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 ) ) ;

109 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 " ) ;

110 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 ) ;

111 }

112 }

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

114 }

115

116 i n t m a i n (i n t ar g c , c h a r * * a r g v ) {

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

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

119

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

121 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 ) ;

122 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 " ) ;

123 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);

124 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 ) ;

125 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 " ,

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

127

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

129 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 ) ;

130

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

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

133

134 r e t u r n 0 ;

135 }

ドキュメント内 表紙 (ページ 142-151)