當前位置: 首頁>>代碼示例>>Python>>正文


Python messaging.HoverInstancesChanged類代碼示例

本文整理匯總了Python中horizons.messaging.HoverInstancesChanged的典型用法代碼示例。如果您正苦於以下問題:Python HoverInstancesChanged類的具體用法?Python HoverInstancesChanged怎麽用?Python HoverInstancesChanged使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了HoverInstancesChanged類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: __init__

    def __init__(self, session):
        super().__init__(session)
        self.setGlobalListener(True)
        self._last_mmb_scroll_point = [0, 0]
        # coordinates of last mouse positions
        self.last_exact_world_location = fife.ExactModelCoordinate()
        self._hover_instances_update_scheduled = False
        self.middle_scroll_active = False

        class CmdListener(fife.ICommandListener):
            pass
        self.cmdlist = CmdListener()
        horizons.globals.fife.eventmanager.addCommandListener(self.cmdlist)
        self.cmdlist.onCommand = self.onCommand

        if not self.__class__.send_hover_instances_update:
            # clear
            HoverInstancesChanged.broadcast(self, set())
            self.__class__.last_hover_instances = WeakList()
        else:
            # need updates about scrolling here
            self.session.view.add_change_listener(self._schedule_hover_instance_update)
            self._schedule_hover_instance_update()

        class CoordsTooltip:
            @classmethod
            def get_instance(cls, cursor_tool):
                if cursor_tool.session.ingame_gui.coordinates_tooltip is not None:
                    inst = cursor_tool.session.ingame_gui.coordinates_tooltip
                    inst.cursor_tool = cursor_tool
                    return inst
                else:
                    return CoordsTooltip(cursor_tool)

            def __init__(self, cursor_tool, **kwargs):
                super().__init__(**kwargs)
                cursor_tool.session.ingame_gui.coordinates_tooltip = self
                self.cursor_tool = cursor_tool
                self.enabled = False

                self.icon = Icon(position=(1, 1)) # 0, 0 is currently not supported by tooltips

            def toggle(self):
                self.enabled = not self.enabled
                if not self.enabled and self.icon.tooltip_shown:
                    self.icon.hide_tooltip()

            def show_evt(self, evt):
                if self.enabled:
                    if evt.isConsumedByWidgets():
                        if self.icon.tooltip_shown:
                            self.icon.hide_tooltip()
                        return
                    x, y = self.cursor_tool.get_world_location(evt).to_tuple()
                    self.icon.helptext = '{:d}, {:d} '.format(x, y) + T("Press H to remove this hint")
                    self.icon.position_tooltip(evt)
                    self.icon.show_tooltip()

        self.tooltip = CoordsTooltip.get_instance(self)
開發者ID:MarkusHackspacher,項目名稱:unknown-horizons,代碼行數:59,代碼來源:navigationtool.py

示例2: _send_hover_instance_upate

    def _send_hover_instance_upate(self):
        """Broadcast update with new instances below mouse (hovered).
        At most called in a certain interval, not after every mouse move in
        order to prevent delays."""
        self._hover_instances_update_scheduled = False
        where = fife.Point(self.last_event_pos.x, self.last_event_pos.y)
        instances = set(self.get_hover_instances(where))
        # only send when there were actual changes
        if instances != set(self.__class__.last_hover_instances):
            self.__class__.last_hover_instances = WeakList(instances)
            HoverInstancesChanged.broadcast(self, instances)
開發者ID:MasterofJOKers,項目名稱:unknown-horizons,代碼行數:11,代碼來源:navigationtool.py

示例3: __init__

    def __init__(self, session):
        super(NavigationTool, self).__init__(session)
        self._last_mmb_scroll_point = [0, 0]
        # coordinates of last mouse positions
        self.last_exact_world_location = fife.ExactModelCoordinate()
        self._hover_instances_update_scheduled = False
        self.middle_scroll_active = False

        class CmdListener(fife.ICommandListener): pass
        self.cmdlist = CmdListener()
        horizons.main.fife.eventmanager.addCommandListener(self.cmdlist)
        self.cmdlist.onCommand = self.onCommand

        if not self.__class__.send_hover_instances_update:
            # clear
            HoverInstancesChanged.broadcast(self, set())
            self.__class__.last_hover_instances = WeakList()
        else:
            # need updates about scrolling here
            self.session.view.add_change_listener(self._schedule_hover_instance_update)
            self._schedule_hover_instance_update()

        class CoordsTooltip(object):
            @classmethod
            def get_instance(cls, cursor_tool):
                if cursor_tool.session.coordinates_tooltip is not None:
                    inst = cursor_tool.session.coordinates_tooltip
                    inst.cursor_tool = cursor_tool
                    return inst
                else:
                    return CoordsTooltip(cursor_tool)

            def __init__(self, cursor_tool, **kwargs):
                super(CoordsTooltip, self).__init__(**kwargs)
                cursor_tool.session.coordinates_tooltip = self
                self.cursor_tool = cursor_tool
                self.enabled = False

                self.icon = Icon()

            def toggle(self):
                self.enabled = not self.enabled
                if not self.enabled and self.icon.tooltip_shown:
                    self.icon.hide_tooltip()

            def show_evt(self, evt):
                if self.enabled:
                    x, y = self.cursor_tool.get_world_location_from_event(evt).to_tuple()
                    self.icon.helptext = u'%f, %f ' % (x, y) + _("Press H to remove this hint")
                    self.icon.position_tooltip(evt)
                    self.icon.show_tooltip()

        self.tooltip = CoordsTooltip.get_instance(self)
開發者ID:MasterofJOKers,項目名稱:unknown-horizons,代碼行數:53,代碼來源:navigationtool.py

示例4: end

    def end(self):
        self.tooltip_instance = None
        self.tooltip_icon.hide_tooltip()
        self.tooltip_icon = None

        self.renderer = None
        self.icons = None

        AddStatusIcon.unsubscribe(self.on_add_icon_message)
        HoverInstancesChanged.unsubscribe(self.on_hover_instances_changed)
        RemoveStatusIcon.unsubscribe(self.on_remove_icon_message)
        WorldObjectDeleted.unsubscribe(self.on_worldobject_deleted_message)
開發者ID:BenjaminHarper,項目名稱:unknown-horizons,代碼行數:12,代碼來源:statusiconmanager.py

示例5: __init__

    def __init__(self, session):
        self.session = session
        # {instance: [list of icons]}
        self.icons = {}
        # Renderer used to render the icons
        self.renderer = self.session.view.renderer['GenericRenderer']

        self.tooltip_instance = None # no weakref:
        # we need to remove the tooltip always anyway, and along with it the entry here
        self.tooltip_icon = Icon(position=(1,1)) # 0, 0 is currently not supported by tooltips

        AddStatusIcon.subscribe(self.on_add_icon_message)
        HoverInstancesChanged.subscribe(self.on_hover_instances_changed)
        RemoveStatusIcon.subscribe(self.on_remove_icon_message)
        WorldObjectDeleted.subscribe(self.on_worldobject_deleted_message)
開發者ID:mage666,項目名稱:unknown-horizons,代碼行數:15,代碼來源:statusiconmanager.py

示例6: __init__

    def __init__(self, renderer, layer):
        """
        @param renderer: Renderer used to render the icons
        @param layer: map layer, needed to place icon
        """
        self.layer = layer
        self.renderer = renderer

        # {instance: [list of icons]}
        self.icons = {}

        self.tooltip_instance = None # no weakref:
        # we need to remove the tooltip always anyway, and along with it the entry here
        self.tooltip_icon = Icon(position=(1, 1)) # 0, 0 is currently not supported by tooltips

        AddStatusIcon.subscribe(self.on_add_icon_message)
        HoverInstancesChanged.subscribe(self.on_hover_instances_changed)
        RemoveStatusIcon.subscribe(self.on_remove_icon_message)
        WorldObjectDeleted.subscribe(self.on_worldobject_deleted_message)
開發者ID:BenjaminHarper,項目名稱:unknown-horizons,代碼行數:19,代碼來源:statusiconmanager.py


注:本文中的horizons.messaging.HoverInstancesChanged類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。