Hi folks,

as you might know, the Command key (aka apple key or ⌘ key) does what the 
Control key is for on Windows and Linux. My Gtk# sharp app is being developed 
with MonoDevelop on Linux, but is intended to run on Windows and MacOS X as 
well.

When adding an accelerator to a menu item, MonoDevelop generates the following 
code, for example, for a "Select All" menu item activated by typing ^A:

this.AllesMarkieren = new global::Gtk.Action ("AllesMarkieren", 
global::Mono.Unix.Catalog.GetString ("Alles _markieren"), null, null);
this.AllesMarkieren.ShortLabel = "Alles _markieren";
w1.Add (this.AllesMarkieren, "<Control><Mod2>a");

MacOS X users, of course, would wanna use ⌘A, as this is Apple tradition.

Sometimes I would like to "accelerate" an operation, which is not bound to a 
menu item, so I write a KeyPressEvent and KeyReleaseEvent handler like this:

protected virtual void OnKeyPressed (object o, Gtk.KeyPressEventArgs args)
        {
                string key = args.Event.Key.ToString();
                        
                if (key == "m" || key == "M") {
                        if (this.control) {
                                this.assemblyButton.Activate();
                        }
                }
                else if (key == "k" || key == "K") {
                        if (this.control) {
                                this.OnItemCalculationButtonPressed(this, new 
EventArgs());
                        }
                }
                else if (key.StartsWith("Control") || key.StartsWith("Command") 
||                      
key.StartsWith("Cmd")) {
                        this.control = true;
                }
        }

protected virtual void OnKeyReleased (object o, Gtk.KeyReleaseEventArgs args)
        {
                string key = args.Event.Key.ToString();
                        
                if (key.StartsWith("Shift")) {
                        this.shift = false;
                }
                else if (key.StartsWith("Control") || key.StartsWith("Command") 
|| 
key.StartsWith("Cmd")) {
                        this.control = false;
                }
        }

In the hand-made code I've added both Control, and Command keys, but frankly 
speaking, I wanna have all my control sequences activated on Mac with the ⌘ 
key and nothing else.

Now here's my first question: Does Gtk# automatically treat the ⌘ key as the 
MacOS X equivalent to the Ctrl key? And if not: How can I get the menu item 
accelerator (example 1) working on Mac with ⌘ instead of Ctrl?

Second question: I'm also using the Windows key for shortcuts, for instance 
[Win]+[F1]. On Linux the key is recognised as a "Super" key (but on some 
systems it's purportedly called "Meta"). What is the MacOS X equivalent of the 
Windows / Super key then?

Any useful help is greatly appreciated. ^^

Kid regards
Jacek Rużyczka

----------------------------------------------------------------
Najkorzystniejsze oferty domow i mieszkan!
Sprawdz >> http://linkint.pl/f29c9
_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to