330
335
_tooltip->ShowWindow (false);
338
void LauncherIcon::OpenQuicklist ()
340
_tooltip->ShowWindow (false);
341
_quicklist->RemoveAllMenuItem ();
343
std::list<DbusmenuMenuitem *> menus = Menus ();
347
std::list<DbusmenuMenuitem *>::iterator it;
348
for (it = menus.begin (); it != menus.end (); it++)
350
DbusmenuMenuitem *menu_item = *it;
352
const gchar* type = dbusmenu_menuitem_property_get (menu_item, DBUSMENU_MENUITEM_PROP_TYPE);
353
const gchar* toggle_type = dbusmenu_menuitem_property_get (menu_item, DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE);
355
if (g_strcmp0 (type, DBUSMENU_CLIENT_TYPES_SEPARATOR) == 0)
357
QuicklistMenuItemSeparator* item = new QuicklistMenuItemSeparator (menu_item, NUX_TRACKER_LOCATION);
358
_quicklist->AddMenuItem (item);
360
else if (g_strcmp0 (toggle_type, DBUSMENU_MENUITEM_TOGGLE_CHECK) == 0)
362
QuicklistMenuItemCheckmark* item = new QuicklistMenuItemCheckmark (menu_item, NUX_TRACKER_LOCATION);
363
_quicklist->AddMenuItem (item);
365
else if (g_strcmp0 (toggle_type, DBUSMENU_MENUITEM_TOGGLE_RADIO) == 0)
367
QuicklistMenuItemRadio* item = new QuicklistMenuItemRadio (menu_item, NUX_TRACKER_LOCATION);
368
_quicklist->AddMenuItem (item);
370
else //(g_strcmp0 (type, DBUSMENU_MENUITEM_PROP_LABEL) == 0)
372
QuicklistMenuItemLabel* item = new QuicklistMenuItemLabel (menu_item, NUX_TRACKER_LOCATION);
373
_quicklist->AddMenuItem (item);
377
int tip_x = _launcher->GetBaseWidth () + 1; //icon_x + icon_w;
378
int tip_y = _center.y + _launcher->GetParent ()->GetGeometry ().y;
379
QuicklistManager::Default ()->ShowQuicklist (_quicklist, tip_x, tip_y);
380
nux::GetWindowCompositor ().SetAlwaysOnFrontWindow (_quicklist);
333
383
void LauncherIcon::RecvMouseDown (int button)
337
_tooltip->ShowWindow (false);
339
_quicklist->RemoveAllMenuItem ();
341
std::list<DbusmenuMenuitem *> menus = Menus ();
345
std::list<DbusmenuMenuitem *>::iterator it;
346
for (it = menus.begin (); it != menus.end (); it++)
348
DbusmenuMenuitem *menu_item = *it;
350
const gchar* type = dbusmenu_menuitem_property_get (menu_item, DBUSMENU_MENUITEM_PROP_TYPE);
351
const gchar* toggle_type = dbusmenu_menuitem_property_get (menu_item, DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE);
353
if (g_strcmp0 (type, DBUSMENU_CLIENT_TYPES_SEPARATOR) == 0)
355
QuicklistMenuItemSeparator* item = new QuicklistMenuItemSeparator (menu_item, NUX_TRACKER_LOCATION);
356
_quicklist->AddMenuItem (item);
358
else if (g_strcmp0 (toggle_type, DBUSMENU_MENUITEM_TOGGLE_CHECK) == 0)
360
QuicklistMenuItemCheckmark* item = new QuicklistMenuItemCheckmark (menu_item, NUX_TRACKER_LOCATION);
361
_quicklist->AddMenuItem (item);
363
else if (g_strcmp0 (toggle_type, DBUSMENU_MENUITEM_TOGGLE_RADIO) == 0)
365
QuicklistMenuItemRadio* item = new QuicklistMenuItemRadio (menu_item, NUX_TRACKER_LOCATION);
366
_quicklist->AddMenuItem (item);
368
else //(g_strcmp0 (type, DBUSMENU_MENUITEM_PROP_LABEL) == 0)
370
QuicklistMenuItemLabel* item = new QuicklistMenuItemLabel (menu_item, NUX_TRACKER_LOCATION);
371
_quicklist->AddMenuItem (item);
375
int tip_x = _launcher->GetBaseWidth () + 1; //icon_x + icon_w;
376
int tip_y = _center.y + _launcher->GetParent ()->GetGeometry ().y;
377
QuicklistManager::Default ()->ShowQuicklist (_quicklist, tip_x, tip_y);
378
nux::GetWindowCompositor ().SetAlwaysOnFrontWindow (_quicklist);
382
389
void LauncherIcon::RecvMouseUp (int button)