Example #1
0
 def _create_text_input(self, form_item, val, form_view):
     if form_item.secure:
         control = NSSecureTextField.createNormalSecureTextFieldWithFont_initialValue_placeholder_(self._system_font, val, form_item.placeholder)
     else:
         control = NSTextField.createNormalTextFieldWithFont_initialValue_placeholder_(self._system_font, val, form_item.placeholder)
     setattr(self.current_panel, form_item.attr, val)
     control.setDelegate_(self)
     control_label = NSTextField.createLabelWithText_font_(form_item.label, self._system_font)
     self._form_y_offset -= NSHeight(control.frame())
     control.setFrame_(NSMakeRect(self._center_point, self._form_y_offset, form_item.width, NSHeight(control.frame())))
     control_label.placeRelativeToControl_(control)
     if form_item.sublabel:
         sublabel = NSTextField.createLabelWithText_font_(form_item.sublabel, self._small_system_font)
         self._form_y_offset -= sublabel.frame().size.height
         sublabel.setFrameOrigin_(NSPoint(control.frame().origin.x - LABEL_PADDING - sublabel.frame().size.width, self._form_y_offset))
         form_view.addSubview_(sublabel)
     return (control, control_label)
Example #2
0
 def _create_choice(self, form_item, val, form_view):
     control_label = NSTextField.createLabelWithText_font_(form_item.label, self._system_font)
     control = NSPopUpButton.createNormalPopUpButtonWithChoices_default_(form_item.choices, val)
     control.setAction_(self.popupAction_)
     self._form_y_offset -= NSHeight(control.frame())
     control.setFrameOrigin_(NSPoint(self._center_point - 3, self._form_y_offset))
     if form_item.width != -1:
         f = control.frame()
         control.setFrameSize_((form_item.width, NSHeight(f)))
     control_label.placeRelativeToControl_(control)
     return (control, control_label)
Example #3
0
 def _create_date(self, form_item, val, form_view):
     gregorian = NSCalendar.alloc().initWithCalendarIdentifier_(NSGregorianCalendar)
     control_label = NSTextField.createLabelWithText_font_(form_item.label, self._system_font)
     control = NSDatePicker.alloc().initWithFrame_(NSZeroRect)
     control.setCalendar_(gregorian)
     control.setDatePickerElements_(NSYearMonthDatePickerElementFlag)
     control.setDrawsBackground_(YES)
     control.setDateValue_(NSDate.date())
     control.setMinDate_(NSDate.date())
     control.setMaxDate_(NSDate.dateWithString_('2029-12-31 23:59:59 +0600'))
     control.sizeToFit()
     control.setAction_(self.datePickerAction_)
     self._form_y_offset -= NSHeight(control.frame())
     control.setFrameOrigin_(NSPoint(self._center_point, self._form_y_offset))
     control_label.placeRelativeToControl_(control)
     return (control, control_label)
Example #4
0
 def initWithDropboxApp_initialIgnoreList_takeAction_callback_remote_(self, dropbox_app, initial_ignore_list, take_action, callback, remote):
     self = super(SelectiveSyncView, self).initWithFrame_(NSZeroRect)
     if self is None:
         return
     self._initial_ignore_list = initial_ignore_list
     self._callback = callback
     self._take_action = take_action
     self._remote = remote
     self.setAutoresizingMask_(NSViewWidthSizable | NSViewHeightSizable)
     self._dropbox_app = dropbox_app
     self.initBrowser(self._remote)
     self.initButtons()
     f = NSFont.systemFontOfSize_(NSFont.smallSystemFontSize())
     self.infoLabel = NSTextField.createLabelWithText_font_(selsync_strings.info, f)
     self.addSubview_(self.infoLabel)
     self.reloadInvalidState()
     self.layoutForWidth_(DEFAULT_ADVANCED_WIDTH if self.forest.advanced_view else DEFAULT_SIMPLE_WIDTH)
     return self
Example #5
0
    def _create_flag_choice(self, form_item, val, form_view):
        control_label = NSTextField.createLabelWithText_font_(form_item.label, self._system_font)
        control = FlagPopUpButton(NSZeroRect, FLAG_WIDTH)
        control.sizeToFit()
        control.setAction_(self.popupAction_)
        self._form_y_offset -= NSHeight(control.frame())
        control.setFrameOrigin_(NSPoint(self._center_point - 3, self._form_y_offset))
        if form_item.width != -1:
            f = control.frame()
            control.setFrameSize_((form_item.width, NSHeight(f)))
        control_label.placeRelativeToControl_(control)
        menu = control.menu()
        for choice in form_item.choices:
            img, name, phonecode = choice
            title = u'%s %s' % (name, phonecode)
            item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(title, None, '')
            if img:
                item.setImage_(img)
            menu.addItem_(item)

        control.selectItemAtIndex_(val)
        return (control, control_label)
Example #6
0
    def layout(self):
        self._thumbnail = ThumbnailBoxView.alloc().initWithFrame_(NSZeroRect)
        self._thumbnail.setImage_(Images.Box64)
        self._thumbnail.setImageAlignment_(NSImageAlignCenter)
        self._thumbnail.setImageScaling_(NSScaleToFit)
        self._thumbnail.setFrameSize_(self.THUMBNAIL_SIZE)
        self._thumbnail.setFrameOrigin_(self.THUMBNAIL_ORIGIN)
        self._thumbnail.setShadowOffset_(self.SHADOW_OFFSET)
        self._thumbnail.setShadowBlurRadius_(self.SHADOW_BLUR)
        self._thumbnail.setShadowColor_(NSColor.blackColor().colorWithAlphaComponent_(0.3))
        self._label = NSTextField.createLabelWithText_font_('', NSFont.boldSystemFontOfSize_(13))
        self._label.setFrameOrigin_(self.LABEL_ORIGIN)
        self._progress_bar = NSProgressIndicator.alloc().initWithFrame_(NSRect(self.PROGRESS_ORIGIN, self.PROGRESS_SIZE))
        self._progress_bar.setStyle_(NSProgressIndicatorBarStyle)
        self._progress_bar.setIndeterminate_(YES)
        self._progress_bar.setFrameOrigin_(self.PROGRESS_ORIGIN)
        self._estimate = NSTextField.createLabelWithText_font_('', NSFont.systemFontOfSize_(NSFont.smallSystemFontSize()))
        self._estimate.setFrameOrigin_(self.ESTIMATE_ORIGIN)
        self._hide_button = self.addNormalRoundButtonWithTitle_action_(MiscStrings.hide_button, self.handleHideButton_)
        self._hide_button.setKeyEquivalent_(ENTER_KEY)
        self._hide_button.alignRightInSuperview()
        self._hide_button.alignBottomInSuperview()
        self._cancel_button = self.addNormalRoundButtonWithTitle_action_(MiscStrings.cancel_button, self.handleCancelButton_)
        self._cancel_button.placeLeftOfButton_(self._hide_button)
        self.addSubview_(self._thumbnail)
        self.addSubview_(self._label)
        self.addSubview_(self._progress_bar)
        self.addSubview_(self._estimate)

        @message_sender(AppHelper.callAfter)
        def handleMessage(message):
            self._label.setStringValue_(message)
            self._label.sizeToFit()

        @message_sender(AppHelper.callAfter)
        def handleTotalBytes(total_bytes):
            self._progress_bar.setIndeterminate_(YES if total_bytes == 0 else NO)
            self._progress_bar.setMinValue_(0.0)
            self._progress_bar.setMaxValue_(total_bytes)
            self._progress_bar.setDoubleValue_(self.ui.cur_bytes.get())

        @message_sender(AppHelper.callAfter)
        def handleCurBytes(cur_bytes):
            self._progress_bar.setDoubleValue_(cur_bytes)
            self._estimate.setStringValue_(self.ui.get_remaining_message())
            self._estimate.sizeToFit()

        @message_sender(AppHelper.callAfter)
        def handleLastPhoto(path):
            if path:
                if time.time() - self.last_photo_time > self.THUMBNAIL_TIMEOUT:
                    image = NSImage.alloc().initByReferencingFile_(unicode(path))
                    if image.isValid():
                        self._thumbnail.setBorder_(True)
                        self._thumbnail.setImage_(image)
                        self.last_photo_time = time.time()
            else:
                self._thumbnail.setBorder_(False)
                self._thumbnail.setImage_(Images.Box64)

        handleMessage(self.ui.message.get())
        handleTotalBytes(self.ui.total_bytes.get())
        handleCurBytes(self.ui.cur_bytes.get())
        handleLastPhoto(self.ui.last_photo.get())
        self.ui.message.register(handleMessage)
        self.ui.total_bytes.register(handleTotalBytes)
        self.ui.cur_bytes.register(handleCurBytes)
        self.ui.last_photo.register(handleLastPhoto)