extern "C" void wxGtkAboutDialogOnLink(GtkAboutDialog * WXUNUSED(about), const gchar *link, gpointer WXUNUSED(data)) { wxLaunchDefaultBrowser(wxGTK_CONV_BACK_SYS(link)); }
static gboolean activate_link(GtkAboutDialog*, const char* link, void* dontIgnore) { if (dontIgnore) { wxLaunchDefaultBrowser(wxGTK_CONV_BACK_SYS(link)); return true; } return false; }
void wxFontRefData::InitFromNative() { m_noAA = false; // Get native info PangoFontDescription *desc = m_nativeFontInfo.description; // Pango sometimes needs to have a size int pango_size = pango_font_description_get_size( desc ); if (pango_size == 0) m_nativeFontInfo.SetPointSize(wxDEFAULT_FONT_SIZE); wxString faceName = wxGTK_CONV_BACK_SYS(pango_font_description_get_family(desc)); if (faceName == wxT("monospace")) { m_family = wxFONTFAMILY_TELETYPE; } else if (faceName == wxT("sans")) { m_family = wxFONTFAMILY_SWISS; } else if (faceName == wxT("serif")) { m_family = wxFONTFAMILY_ROMAN; } else { m_family = wxFONTFAMILY_UNKNOWN; } // Pango description are never underlined m_underlined = false; // always with GTK+ 2 m_encoding = wxFONTENCODING_UTF8; }
static void wxGtkAboutDialogOnLink(GtkAboutDialog*, const char* link, void*) { wxLaunchDefaultBrowser(wxGTK_CONV_BACK_SYS(link)); }
static wxString GetGtkHotKey( const wxMenuItem& item ) { wxString hotkey; wxAcceleratorEntry *accel = item.GetAccel(); if ( accel ) { int flags = accel->GetFlags(); if ( flags & wxACCEL_ALT ) hotkey += wxT("<alt>"); if ( flags & wxACCEL_CTRL ) hotkey += wxT("<control>"); if ( flags & wxACCEL_SHIFT ) hotkey += wxT("<shift>"); int code = accel->GetKeyCode(); switch ( code ) { case WXK_F1: case WXK_F2: case WXK_F3: case WXK_F4: case WXK_F5: case WXK_F6: case WXK_F7: case WXK_F8: case WXK_F9: case WXK_F10: case WXK_F11: case WXK_F12: case WXK_F13: case WXK_F14: case WXK_F15: case WXK_F16: case WXK_F17: case WXK_F18: case WXK_F19: case WXK_F20: case WXK_F21: case WXK_F22: case WXK_F23: case WXK_F24: hotkey += wxString::Format(wxT("F%d"), code - WXK_F1 + 1); break; // TODO: we should use gdk_keyval_name() (a.k.a. // XKeysymToString) here as well as hardcoding the keysym // names this might be not portable case WXK_INSERT: hotkey << wxT("Insert" ); break; case WXK_DELETE: hotkey << wxT("Delete" ); break; case WXK_UP: hotkey << wxT("Up" ); break; case WXK_DOWN: hotkey << wxT("Down" ); break; case WXK_PAGEUP: hotkey << wxT("Page_Up" ); break; case WXK_PAGEDOWN: hotkey << wxT("Page_Down" ); break; case WXK_LEFT: hotkey << wxT("Left" ); break; case WXK_RIGHT: hotkey << wxT("Right" ); break; case WXK_HOME: hotkey << wxT("Home" ); break; case WXK_END: hotkey << wxT("End" ); break; case WXK_RETURN: hotkey << wxT("Return" ); break; case WXK_BACK: hotkey << wxT("BackSpace" ); break; case WXK_TAB: hotkey << wxT("Tab" ); break; case WXK_ESCAPE: hotkey << wxT("Esc" ); break; case WXK_SPACE: hotkey << wxT("space" ); break; case WXK_MULTIPLY: hotkey << wxT("Multiply" ); break; case WXK_ADD: hotkey << wxT("Add" ); break; case WXK_SEPARATOR: hotkey << wxT("Separator" ); break; case WXK_SUBTRACT: hotkey << wxT("Subtract" ); break; case WXK_DECIMAL: hotkey << wxT("Decimal" ); break; case WXK_DIVIDE: hotkey << wxT("Divide" ); break; case WXK_CANCEL: hotkey << wxT("Cancel" ); break; case WXK_CLEAR: hotkey << wxT("Clear" ); break; case WXK_MENU: hotkey << wxT("Menu" ); break; case WXK_PAUSE: hotkey << wxT("Pause" ); break; case WXK_CAPITAL: hotkey << wxT("Capital" ); break; case WXK_SELECT: hotkey << wxT("Select" ); break; case WXK_PRINT: hotkey << wxT("Print" ); break; case WXK_EXECUTE: hotkey << wxT("Execute" ); break; case WXK_SNAPSHOT: hotkey << wxT("Snapshot" ); break; case WXK_HELP: hotkey << wxT("Help" ); break; case WXK_NUMLOCK: hotkey << wxT("Num_Lock" ); break; case WXK_SCROLL: hotkey << wxT("Scroll_Lock" ); break; case WXK_NUMPAD_INSERT: hotkey << wxT("KP_Insert" ); break; case WXK_NUMPAD_DELETE: hotkey << wxT("KP_Delete" ); break; case WXK_NUMPAD_SPACE: hotkey << wxT("KP_Space" ); break; case WXK_NUMPAD_TAB: hotkey << wxT("KP_Tab" ); break; case WXK_NUMPAD_ENTER: hotkey << wxT("KP_Enter" ); break; case WXK_NUMPAD_F1: case WXK_NUMPAD_F2: case WXK_NUMPAD_F3: case WXK_NUMPAD_F4: hotkey += wxString::Format(wxT("KP_F%d"), code - WXK_NUMPAD_F1 + 1); break; case WXK_NUMPAD_HOME: hotkey << wxT("KP_Home" ); break; case WXK_NUMPAD_LEFT: hotkey << wxT("KP_Left" ); break; case WXK_NUMPAD_UP: hotkey << wxT("KP_Up" ); break; case WXK_NUMPAD_RIGHT: hotkey << wxT("KP_Right" ); break; case WXK_NUMPAD_DOWN: hotkey << wxT("KP_Down" ); break; case WXK_NUMPAD_PAGEUP: hotkey << wxT("KP_Page_Up" ); break; case WXK_NUMPAD_PAGEDOWN: hotkey << wxT("KP_Page_Down" ); break; case WXK_NUMPAD_END: hotkey << wxT("KP_End" ); break; case WXK_NUMPAD_BEGIN: hotkey << wxT("KP_Begin" ); break; case WXK_NUMPAD_EQUAL: hotkey << wxT("KP_Equal" ); break; case WXK_NUMPAD_MULTIPLY: hotkey << wxT("KP_Multiply" ); break; case WXK_NUMPAD_ADD: hotkey << wxT("KP_Add" ); break; case WXK_NUMPAD_SEPARATOR: hotkey << wxT("KP_Separator" ); break; case WXK_NUMPAD_SUBTRACT: hotkey << wxT("KP_Subtract" ); break; case WXK_NUMPAD_DECIMAL: hotkey << wxT("KP_Decimal" ); break; case WXK_NUMPAD_DIVIDE: hotkey << wxT("KP_Divide" ); break; case WXK_NUMPAD0: case WXK_NUMPAD1: case WXK_NUMPAD2: case WXK_NUMPAD3: case WXK_NUMPAD4: case WXK_NUMPAD5: case WXK_NUMPAD6: case WXK_NUMPAD7: case WXK_NUMPAD8: case WXK_NUMPAD9: hotkey += wxString::Format(wxT("KP_%d"), code - WXK_NUMPAD0); break; case WXK_WINDOWS_LEFT: hotkey << wxT("Super_L" ); break; case WXK_WINDOWS_RIGHT: hotkey << wxT("Super_R" ); break; case WXK_WINDOWS_MENU: hotkey << wxT("Menu" ); break; case WXK_COMMAND: hotkey << wxT("Command" ); break; /* These probably wouldn't work as there is no SpecialX in gdk/keynames.txt case WXK_SPECIAL1: case WXK_SPECIAL2: case WXK_SPECIAL3: case WXK_SPECIAL4: case WXK_SPECIAL5: case WXK_SPECIAL6: case WXK_SPECIAL7: case WXK_SPECIAL8: case WXK_SPECIAL9: case WXK_SPECIAL10: case WXK_SPECIAL11: case WXK_SPECIAL12: case WXK_SPECIAL13: case WXK_SPECIAL14: case WXK_SPECIAL15: case WXK_SPECIAL16: case WXK_SPECIAL17: case WXK_SPECIAL18: case WXK_SPECIAL19: case WXK_SPECIAL20: hotkey += wxString::Format(wxT("Special%d"), code - WXK_SPECIAL1 + 1); break; */ // if there are any other keys wxAcceleratorEntry::Create() may // return, we should process them here default: if ( code < 127 ) { const wxString name = wxGTK_CONV_BACK_SYS(gdk_keyval_name((guint)code)); if ( !name.empty() ) { hotkey << name; break; } } wxFAIL_MSG( wxT("unknown keyboard accel") ); } delete accel; } return hotkey; }