Пример #1
0
    def InstallSearchCtrl(self):
        """Installs the search context controls into the panel.
        Other controls should be removed from the panel before calling
        this method.
        @postcondition: search control is installed in bar

        """
        h_sizer = wx.BoxSizer(wx.HORIZONTAL)
        v_sizer = wx.BoxSizer(wx.VERTICAL)
        t_sizer = wx.BoxSizer(wx.VERTICAL)

        spacer = (6, 6)
        if wx.Platform == '__WXGTK__':
            spacer = (4, 4)
        v_sizer.Add(spacer)
        search = ed_search.EdSearchCtrl(self,
                                        ID_SEARCH_CTRL,
                                        menulen=5,
                                        size=(180, 20))
        v_sizer.Add(search, 0, wx.ALIGN_CENTER_VERTICAL)
        v_sizer.Add((4, 4))
        f_lbl = wx.StaticText(self, label=_("Find") + u": ")
        ctrl_sizer = wx.BoxSizer(wx.HORIZONTAL)
        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_DOWN), wx.ART_MENU)
        next_btn = platebtn.PlateButton(self,
                                        ID_SEARCH_NEXT,
                                        _("Next"),
                                        t_bmp,
                                        style=platebtn.PB_STYLE_NOBG)

        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_UP), wx.ART_MENU)
        pre_btn = platebtn.PlateButton(self,
                                       ID_SEARCH_PRE,
                                       _("Previous"),
                                       t_bmp,
                                       style=platebtn.PB_STYLE_NOBG)

        match_case = wx.CheckBox(self, ID_MATCH_CASE, _("Match Case"))
        match_case.SetValue(search.IsMatchCase())
        if wx.Platform == '__WXMAC__':
            t_sizer.Add((5, 5))
            for win in [f_lbl, match_case, next_btn, pre_btn]:
                win.SetFont(wx.SMALL_FONT)

        ctrl_sizer.AddMany([(10, 0), (next_btn, 0, wx.ALIGN_CENTER_VERTICAL),
                            ((5, 0)), (pre_btn, 0, wx.ALIGN_CENTER_VERTICAL),
                            ((8, 0)),
                            (match_case, 0, wx.ALIGN_CENTER_VERTICAL)])

        t_sizer.Add(ctrl_sizer, 0, wx.ALIGN_CENTER_VERTICAL)

        h_sizer.AddMany([(f_lbl, 0, wx.ALIGN_CENTER_VERTICAL), ((5, 5)),
                         (v_sizer, 0, wx.ALIGN_CENTER_VERTICAL),
                         (t_sizer, 0, wx.ALIGN_CENTER_VERTICAL)])
        self._sizers['search'] = h_sizer
        self._sizers['h_sizer'].Add(h_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL)
        self._sizers['h_sizer'].Layout()
        return search
Пример #2
0
    def InstallSearchCtrl(self):
        """Installs the search context controls into the panel.
        Other controls should be removed from the panel before calling
        this method.
        @postcondition: search control is installed in bar

        """
        h_sizer = wx.BoxSizer(wx.HORIZONTAL)
        v_sizer = wx.BoxSizer(wx.VERTICAL)
        t_sizer = wx.BoxSizer(wx.VERTICAL)

        v_sizer.Add((5, 5))
        ssize = wx.Size(180, 20)
        if wx.Platform == '__WXGTK__':
            ssize.SetHeight(24)
        search = ed_search.EdSearchCtrl(self, ID_SEARCH_CTRL, 
                                         menulen=5, size=ssize)
        v_sizer.Add(search)
        v_sizer.Add((4, 4))
        f_lbl = wx.StaticText(self, ID_FIND_LBL, _("Find") + u": ")
        ctrl_sizer = wx.BoxSizer(wx.HORIZONTAL)
        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_DOWN), wx.ART_MENU)
        next_btn = wx.BitmapButton(self, ID_SEARCH_NEXT, 
                                   t_bmp, style=wx.NO_BORDER)
        nlbl = wx.StaticText(self, label=_("Next"))

        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_UP), wx.ART_MENU)
        pre_btn = wx.BitmapButton(self, ID_SEARCH_PRE, 
                                  t_bmp, style=wx.NO_BORDER)
        plbl = wx.StaticText(self, label=_("Previous"))

        match_case = wx.CheckBox(self, ID_MATCH_CASE, _("Match Case"))
        match_case.SetValue(search.IsMatchCase())
        if wx.Platform == '__WXMAC__':
            f_lbl.SetFont(wx.SMALL_FONT)
            match_case.SetFont(wx.SMALL_FONT)
            nlbl.SetFont(wx.SMALL_FONT)
            plbl.SetFont(wx.SMALL_FONT)

        ctrl_sizer.AddMany([(10, 10), (next_btn, 0, wx.ALIGN_CENTER_VERTICAL), 
                            ((3, 3)), (nlbl, 0, wx.ALIGN_CENTER_VERTICAL),
                            ((10, 10)), (pre_btn, 0, wx.ALIGN_CENTER_VERTICAL), 
                            ((3, 3)), (plbl, 0, wx.ALIGN_CENTER_VERTICAL),
                            ((10, 10)), 
                            (match_case, 0, wx.ALIGN_CENTER_VERTICAL)])

        t_sizer.Add((7, 7))
        t_sizer.Add(ctrl_sizer)
        t_sizer.Add((4, 4))

        h_sizer.AddMany([(f_lbl, 0, wx.ALIGN_CENTER_VERTICAL),
                         ((5, 5)), (v_sizer), 
                         (ctrl_sizer, 0, wx.ALIGN_CENTER_VERTICAL)])
        self._sizers['search'] = h_sizer
        self._sizers['h_sizer'].Add(h_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL)
        self._sizers['h_sizer'].Layout()
        return search
Пример #3
0
    def __init__(self, parent):
        CommandBarBase.__init__(self, parent)

        # Attributes
        self.SetControl(
            ed_search.EdSearchCtrl(self, wx.ID_ANY, menulen=5, size=(180, -1)))
        self._sctrl = self.ctrl.GetSearchController()

        # Setup
        f_lbl = wx.StaticText(self, label=_("Find") + u": ")
        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_DOWN), wx.ART_MENU)
        next_btn = eclib.PlateButton(self,
                                     ID_SEARCH_NEXT,
                                     _("Next"),
                                     t_bmp,
                                     style=eclib.PB_STYLE_NOBG)
        self.AddControl(f_lbl, wx.ALIGN_LEFT)
        self.AddControl(self.ctrl, wx.ALIGN_LEFT)
        self.AddControl(next_btn, wx.ALIGN_LEFT)

        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_UP), wx.ART_MENU)
        pre_btn = eclib.PlateButton(self,
                                    ID_SEARCH_PRE,
                                    _("Previous"),
                                    t_bmp,
                                    style=eclib.PB_STYLE_NOBG)
        self.AddControl(pre_btn, wx.ALIGN_LEFT)

        match_case = wx.CheckBox(self, ID_MATCH_CASE, _("Match Case"))
        match_case.SetValue(self.ctrl.IsMatchCase())
        self.AddControl(match_case, wx.ALIGN_LEFT)

        regex_cb = wx.CheckBox(self, ID_REGEX, _("Regular Expression"))
        regex_cb.SetValue(self.ctrl.IsRegEx())
        self.AddControl(regex_cb, wx.ALIGN_LEFT)

        # HACK: workaround bug in mac control that resets size to
        #       that of the default variant after any text has been
        #       typed in it. Note it reports the best size as the default
        #       variant and causes layout issues. wxBUG
        if wx.Platform == '__WXMAC__':
            self.ctrl.SetSizeHints(180, 16, 180, 16)

        # Event Handlers
        self.Bind(wx.EVT_BUTTON, self.OnButton)
        self.Bind(wx.EVT_CHECKBOX, self.OnCheck)
        ed_msg.Subscribe(self.OnThemeChange, ed_msg.EDMSG_THEME_CHANGED)
        self._sctrl.RegisterClient(self)
Пример #4
0
    def __init__(self, parent):
        CommandBarBase.__init__(self, parent)

        # Attributes
        self.SetControl(
            ed_search.EdSearchCtrl(self, wx.ID_ANY, menulen=5, size=(180, -1)))
        self._sctrl = self.ctrl.GetSearchController()

        # Setup
        f_lbl = wx.StaticText(self, label=_("Find") + u": ")
        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_DOWN), wx.ART_MENU)
        next_btn = eclib.PlateButton(self,
                                     ID_SEARCH_NEXT,
                                     _("Next"),
                                     t_bmp,
                                     style=eclib.PB_STYLE_NOBG,
                                     name="NextBtn")
        self.AddControl(f_lbl, wx.ALIGN_LEFT)
        self.AddControl(self.ctrl, wx.ALIGN_LEFT)
        self.AddControl(next_btn, wx.ALIGN_LEFT)

        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_UP), wx.ART_MENU)
        pre_btn = eclib.PlateButton(self,
                                    ID_SEARCH_PRE,
                                    _("Previous"),
                                    t_bmp,
                                    style=eclib.PB_STYLE_NOBG,
                                    name="PreBtn")
        self.AddControl(pre_btn, wx.ALIGN_LEFT)

        t_bmp = wx.ArtProvider.GetBitmap(str(ed_glob.ID_FIND), wx.ART_MENU)
        fa_btn = eclib.PlateButton(self,
                                   ID_FIND_ALL,
                                   _("Find All"),
                                   t_bmp,
                                   style=eclib.PB_STYLE_NOBG,
                                   name="FindAllBtn")
        self.AddControl(fa_btn)
        fa_btn.Show(False)  # Hide this button by default

        match_case = wx.CheckBox(self,
                                 ID_MATCH_CASE,
                                 _("Match Case"),
                                 name="MatchCase")
        match_case.SetValue(self.ctrl.IsMatchCase())
        self.AddControl(match_case, wx.ALIGN_LEFT)
        match_case.Show(False)  # Hide by default

        ww_cb = wx.CheckBox(self,
                            ID_WHOLE_WORD,
                            _("Whole Word"),
                            name="WholeWord")
        ww_cb.SetValue(self.ctrl.IsWholeWord())
        self.AddControl(ww_cb, wx.ALIGN_LEFT)

        regex_cb = wx.CheckBox(self,
                               ID_REGEX,
                               _("Regular Expression"),
                               name="RegEx")
        regex_cb.SetValue(self.ctrl.IsRegEx())
        self.AddControl(regex_cb, wx.ALIGN_LEFT)

        # HACK: workaround bug in mac control that resets size to
        #       that of the default variant after any text has been
        #       typed in it. Note it reports the best size as the default
        #       variant and causes layout issues. wxBUG
        if wx.Platform == '__WXMAC__':
            self.ctrl.SetSizeHints(180, 16, 180, 16)

        # Event Handlers
        self.Bind(wx.EVT_BUTTON, self.OnButton)
        self.Bind(wx.EVT_CHECKBOX, self.OnCheck)
        ed_msg.Subscribe(self.OnThemeChange, ed_msg.EDMSG_THEME_CHANGED)
        self._sctrl.RegisterClient(self)

        # Set user customizable layout
        state = Profile_Get('CTRLBAR', default=dict())
        cfg = state.get(self.GetConfigKey(), dict())
        self.SetControlStates(cfg)