Keyboard shortcuts in GTK are actually easy...

This commit is contained in:
Hylke Bons 2012-06-19 10:15:32 +01:00
parent d09ee4b1f5
commit fb62c570a4
2 changed files with 13 additions and 47 deletions

View file

@ -51,7 +51,7 @@ namespace SparkleShare {
public SparkleEventLog () : base ("")
{
SetSizeRequest (480, (int) (Gdk.Screen.Default.Height * 0.9));
SetSizeRequest (480, (int) (Gdk.Screen.Default.Height * 0.8));
int x = (int) (Gdk.Screen.Default.Width * 0.61);
int y = (int) (Gdk.Screen.Default.Height * 0.5 - (HeightRequest * 0.5));
@ -68,6 +68,15 @@ namespace SparkleShare {
Controller.WindowClosed ();
args.RetVal = true;
};
KeyPressEvent += delegate (object o, KeyPressEventArgs args) {
if (args.Event.Key == Gdk.Key.Escape ||
(args.Event.State == Gdk.ModifierType.ControlMask) &&
args.Event.Key == Gdk.Key.w) {
Controller.WindowClosed ();
}
};
this.size_label = new Label () {
Markup = "<b>Size:</b> …",
@ -109,7 +118,6 @@ namespace SparkleShare {
this.layout_horizontal.PackStart (layout_sizes, true, true, 12);
layout_vertical.PackStart (this.layout_horizontal, false, false, 0);
layout_vertical.PackStart (CreateShortcutsBar (), false, false, 0);
layout_vertical.PackStart (this.content_wrapper, true, true, 0);
Add (layout_vertical);
@ -288,49 +296,5 @@ namespace SparkleShare {
thread.Start ();
}
private MenuBar CreateShortcutsBar ()
{
// Adds a hidden menubar that contains to enable keyboard
// shortcuts to close the log
MenuBar menu_bar = new MenuBar ();
MenuItem file_item = new MenuItem ("File");
Menu file_menu = new Menu ();
MenuItem close_1 = new MenuItem ("Close1");
MenuItem close_2 = new MenuItem ("Close2");
// adds specific Ctrl+W and Esc key accelerators to Log Window
AccelGroup accel_group = new AccelGroup ();
AddAccelGroup (accel_group);
// Close on Esc
close_1.AddAccelerator ("activate", accel_group, new AccelKey (Gdk.Key.W,
Gdk.ModifierType.ControlMask, AccelFlags.Visible));
close_1.Activated += delegate { Controller.WindowClosed (); };
// Close on Ctrl+W
close_2.AddAccelerator ("activate", accel_group, new AccelKey (Gdk.Key.Escape,
Gdk.ModifierType.None, AccelFlags.Visible));
close_2.Activated += delegate { Controller.WindowClosed (); };
file_menu.Append (close_1);
file_menu.Append (close_2);
file_item.Submenu = file_menu;
menu_bar.Append (file_item);
// Hacky way to hide the menubar, but the accellerators
// will simply be disabled when using Hide ()
menu_bar.HeightRequest = 1;
menu_bar.ModifyBg (StateType.Normal, Style.Background (StateType.Normal));
return menu_bar;
}
}
}

View file

@ -313,7 +313,9 @@ namespace SparkleShare {
Controller.PageCancelled ();
};
Button add_button = new Button (_("Add"));
Button add_button = new Button (_("Add")) {
Sensitive = false
};
add_button.Clicked += delegate {
string server = address_entry.Text;