2017-10-19 12 views
0

私は小さなアプリケーションのために、GTKADAを使用していて、右のメニューバーのヘルプメニューを正当化したいです。はどのように右gtkadaを使用して正当化するために1つのメニュー項目を取得しなく減価償却の方法

古い方法は、新しいメニューのSet_Right_justifiedを呼び出すことだったが、それは今旧式です。

Apparantly私はこれを行うにはSet_Hexpand、およびSet_Halignを使用することができるはずです。

私が現在使用しているコードは次のとおりです。 -

with GTK.WIDGET; 
procedure Add_Menu_To_Menu_Bar 
(Menu_Bar  : in GTK.MENU_BAR.Gtk_Menu_Bar; 
    Menu   : in GTK.MENU.Gtk_Menu; 
    Label   : in string; 
    Right_Justified : in boolean := False) 
is 
    New_Item : GTK.MENU_ITEM.Gtk_Menu_Item; 
begin 
    GTK.MENU_ITEM.Gtk_New(Menu_Item => New_Item, 
         Label  => Label); 

    New_Item.Set_Right_Justified(Right_Justified => Right_Justified); 

-- if Right_Justified then 
--  -- Below is the recommended alternative to above 
--  -- but dosn't work 
--   New_Item.Set_Hexpand(Expand => true); 
--   New_Item.Set_Hexpand_Set(Set => true); 
--   New_Item.Set_Halign(Align => GTK.WIDGET.Align_End); 
--  -- Below does work, but only sets a fixed margin 
--   New_Item.Set_Margin_Start(Margin => 40); 
--   New_Item.Set_Margin_End(Margin => 40); 
--  -- Below effects the entire menu bar 
--   Menu_Bar.Set_Hexpand(Expand => true); 
--   Menu_Bar.Set_Halign(Align => GTK.WIDGET.Align_End); 
-- end if; 


    GTK.MENU_ITEM.Show(New_Item); 

    GTK.MENU_ITEM.Set_Submenu(New_Item, Menu); 

    GTK.MENU_BAR.Append(Menu_Shell => Menu_Bar, 
         Child  => New_Item); 

エンドAdd_Menu_To_Menu_Bar。

N.B. 1.これは現在、悪い習慣とみなされています。 2.私はこれは私が今の反対側にそれらを入れて、2つのメニューバーを持つことによってこれを解決しているGTKのGPL 2017バージョン& GPS

+0

はなぜ推奨代替では動作しませんか?実際の結果は何ですか? – flyx

答えて

0

たWindows 10、上にある空き地 3を使用してないよ右揃えメニューを右手側メニューバーに追加します。

しかし、私はまだこれがちょっとした泥だと思っています。

N.B.私の試みの結果basicly明白な解決策は何かをdosn't、コードサンプルのコメントとしてで示されている...

関連する問題