本文整理汇总了Golang中github.com/sqp/godock/libs/gldi.Icon.Window方法的典型用法代码示例。如果您正苦于以下问题:Golang Icon.Window方法的具体用法?Golang Icon.Window怎么用?Golang Icon.Window使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/sqp/godock/libs/gldi.Icon
的用法示例。
在下文中一共展示了Icon.Window方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: OnMiddleClick
// OnMiddleClick triggers a dock liddle click action on the icon.
//
func OnMiddleClick(icon gldi.Icon, container *gldi.Container) bool {
if icon == nil || !gldi.ObjectIsDock(container) {
log.Debug("notifMiddleClick", "ignored: no icon or dock target")
return notif.AnswerLetPass
}
actmid := current.Taskbar.ActionOnMiddleClick()
simple := icon.IsAppli() && !icon.IsApplet()
multi := icon.IsMultiAppli()
switch {
case (simple || multi) && actmid == 3: // Launch new.
if icon.GetCommand() != "" {
// if (! gldi_class_is_starting (icon->cClass) && ! gldi_icon_is_launching (icon)) // do not launch it twice
icon.LaunchCommand(log)
}
return notif.AnswerIntercept
case simple && actmid == 1: // Close one.
icon.Window().Close()
return notif.AnswerIntercept
case simple && actmid == 2: // Minimise one.
if !icon.Window().IsHidden() {
icon.Window().Minimize()
}
return notif.AnswerIntercept
case multi && actmid == 1: // Close all.
icon.CallbackActionSubWindows((cdglobal.Window).Close)()
return notif.AnswerIntercept
case multi && actmid == 2: // Minimise all.
hideShowInClassSubdock(icon)
return notif.AnswerIntercept
}
return notif.AnswerLetPass
}
示例2: OnLeftClick
// OnLeftClick triggers a dock left click action on the icon.
//
func OnLeftClick(icon gldi.Icon, container *gldi.Container, btnState uint) bool {
switch {
case icon == nil || !gldi.ObjectIsDock(container):
log.Debug("notifClickIcon", "ignored: no icon or dock target")
return notif.AnswerLetPass
// With shift or ctrl on an icon that is linked to a program => re-launch this program.
case gdk.ModifierType(btnState)&(gdk.GDK_SHIFT_MASK|gdk.GDK_CONTROL_MASK) > 0:
if icon.IsLauncher() || icon.IsAppli() || icon.IsStackIcon() {
icon.LaunchCommand(log)
}
return notif.AnswerLetPass
// scale on an icon holding a class sub-dock (fallback: show all windows).
case icon.IsMultiAppli() &&
current.Taskbar.PresentClassOnClick() && // if we want to use this feature
(!current.Docks.ShowSubDockOnClick() || // if sub-docks are shown on mouse over
icon.SubDockIsVisible() && // or this sub-dock is already visible
icon.DesktopPresentClass()): // we use the scale plugin if it's possible
icon.CallbackActionSubWindows((cdglobal.Window).Show)()
// in case the dock is visible or about to be visible, hide it, as it would confuse the user to have both.
// cairo_dock_emit_leave_signal (CAIRO_CONTAINER (icon->pSubDock));
return notif.AnswerIntercept
// // else handle sub-docks showing on click, applis and launchers (not applets).
// icon pointing to a sub-dock with either "sub-dock activation on click" option enabled,
// or sub-dock not visible -> open the sub-dock
case icon.GetSubDock() != nil && (current.Docks.ShowSubDockOnClick() || !icon.SubDockIsVisible()):
icon.ShowSubdock(container.ToCairoDock())
return notif.AnswerIntercept
// icon holding an appli, but not being an applet -> show/hide the window.
case icon.IsAppli() && !icon.IsApplet():
// ne marche que si le dock est une fenêtre de type 'dock', sinon il prend le focus.
if icon.Window().IsActive() && current.Taskbar.MinimizeOnClick() && !icon.Window().IsHidden() && icon.Window().IsOnCurrentDesktop() {
icon.Window().Minimize()
} else {
icon.Window().Show()
}
return notif.AnswerIntercept
// icon holding a class sub-dock -> show/hide the windows of the class.
case icon.IsMultiAppli():
if current.Docks.ShowSubDockOnClick() {
hideShowInClassSubdock(icon)
}
return notif.AnswerIntercept
// finally, launcher being none of the previous cases -> launch the command
case icon.IsLauncher():
// if (! gldi_class_is_starting (icon->cClass) && ! gldi_icon_is_launching (icon)) {// do not launch it twice (avoid wrong double click) => if we want to launch it 2 times in a row, we have to use Shift + Click
icon.LaunchCommand(log)
return notif.AnswerIntercept // wasn't there in real dock.
}
// for applets and their sub-icons, let the module-instance handles the click; for separators, no action.
// cd_debug ("no action here");
return notif.AnswerLetPass
}