Пример #1
0
	void ComboBox::paint(Graphics &g) {
		Size size = getSize();
		gsize_t btnWidth = size.height;
		gsize_t textWidth = size.width - btnWidth;
		// paint item
		g.setColor(getTheme().getColor(Theme::TEXT_BACKGROUND));
		g.fillRect(1,1,textWidth - 2,size.height - 2);
		g.setColor(getTheme().getColor(_focused ? Theme::CTRL_DARKBORDER : Theme::CTRL_BORDER));
		g.drawRect(0,0,textWidth,size.height);
		if(_selected >= 0) {
			gsize_t textlimit = textWidth - getTheme().getTextPadding() * 2;
			gpos_t ystart = (size.height - g.getFont().getSize().height) / 2;
			gsize_t count = getGraphics()->getFont().limitStringTo(_items[_selected],textlimit);
			g.setColor(getTheme().getColor(Theme::TEXT_FOREGROUND));
			g.drawString(getTheme().getTextPadding(),ystart,_items[_selected],0,count);
		}

		// paint button border and bg
		const Color &bg = getTheme().getColor(Theme::BTN_BACKGROUND);
		g.colorFadeRect(VERTICAL,bg,bg + 20,textWidth + 2,1,btnWidth - 3,size.height - 2);
		g.setColor(getTheme().getColor(_focused ? Theme::CTRL_DARKBORDER : Theme::CTRL_BORDER));
		g.drawRect(textWidth + 1,0,btnWidth - 1,size.height);

		// paint triangle
		size_t pressedPad = _pressed ? 1 : 0;
		Pos t1(size.width - btnWidth / 2,size.height - ARROW_PAD + pressedPad);
		Pos t2(size.width - ARROW_PAD,ARROW_PAD + pressedPad);
		Pos t3(textWidth + ARROW_PAD,ARROW_PAD + pressedPad);
		g.setColor(getTheme().getColor(Theme::CTRL_DARKBACK));
		g.fillTriangle(t1,t2,t3);
		g.setColor(getTheme().getColor(Theme::CTRL_DARKBORDER));
		g.drawTriangle(t1,t2,t3);
	}
Пример #2
0
	void ComboBox::ItemWindow::paint(Graphics &g) {
		g.setColor(getTheme().getColor(Theme::TEXT_BACKGROUND));
		g.fillRect(Pos(0,0),getSize());

		g.setColor(getTheme().getColor(Theme::CTRL_BORDER));
		g.drawRect(Pos(0,0),getSize());

		const Color &tf = getTheme().getColor(Theme::TEXT_FOREGROUND);
		const Color &sb = getTheme().getColor(Theme::SEL_BACKGROUND);
		const Color &sf = getTheme().getColor(Theme::SEL_FOREGROUND);

		gpos_t y = 0;
		gsize_t itemHeight = g.getFont().getSize().height;
		g.setColor(tf);
		for(auto it = _cb->_items.begin(); it != _cb->_items.end(); ++it) {
			if(_highlighted == (int)distance(_cb->_items.begin(),it)) {
				g.colorFadeRect(VERTICAL,sb,sb + 20,SELPAD,y + SELPAD,
						getSize().width - SELPAD * 2 - 1,
						itemHeight + getTheme().getTextPadding() * 2 - SELPAD * 2);
				g.setColor(sf);
			}
			g.drawString(getTheme().getTextPadding(),y + getTheme().getTextPadding(),*it);
			g.setColor(tf);
			y += itemHeight + getTheme().getTextPadding() * 2;
		}
	}
Пример #3
0
void Settings::setTheme(int value)
{
    if (getTheme() != value) {
        settings.setValue("apptheme", value);
        emit themeChanged();
    }
}
Пример #4
0
    void MessageBox::addButton(const sf::String& caption)
    {
        Button::Ptr button;
        if (!getTheme() || m_buttonClassName.empty())
            button = std::make_shared<Button>();
        else
            button = getTheme()->internalLoad(getPrimaryLoadingParameter(), m_buttonClassName);

        button->setTextSize(m_textSize);
        button->setText(caption);
        button->connect("Pressed", [=](){ m_callback.text = caption; sendSignal("ButtonPressed", caption); });

        add(button, "#TGUI_INTERNAL$MessageBoxButton$" + caption + "#");
        m_buttons.push_back(button);

        rearrange();
    }
Пример #5
0
void Map::update (uint32_t deltaTime)
{
	_pointCount = 0;

	if (_pause)
		return;

	_timeManager.update(deltaTime);

	if (_restartDue > 0 && _restartDue <= _time) {
		const std::string currentName = getName();
		info(LOG_MAP, "restarting map " + currentName);
		if (isFailed()) {
			const Map::PlayerList& players = getPlayers();
			for (Map::PlayerListConstIter i = players.begin(); i != players.end(); ++i) {
				const Player* p = *i;
				GameEvent.failedMap(p->getClientId(), currentName, getFailReason(p), getTheme());
			}
			System.track("mapstate", "failed:" + currentName);
		} else {
			load(currentName);
		}
		return;
	}

	if (_world) {
		_time += deltaTime;
		while (_time - _physicsTime >= Constant::DELTA_PHYSICS_MILLIS) {
			_physicsTime += Constant::DELTA_PHYSICS_MILLIS;
			{
				ExecutionTime visitTime("VisitTime", 2000L);
				visitEntities(this);
			}

			handleFlyingNPC();
			handleFishNPC();

			if (_time >= _warmupPhase) {
				_entityRemovalAllowed = false;
				ExecutionTime stepTime("StepTime", 2000L);
				_world->Step(Constant::DELTA_PHYSICS_SECONDS, 8, 3);
				_entityRemovalAllowed = true;
			}
		}

		const int t = _referenceTime - _time / 1000;
		if (t < 0)
			return;

		static int lastT = 0;
		if (lastT != t) {
			GameEvent.sendTimeRemaining(t);
			lastT = t;
		}
	}
}
Пример #6
0
ColorBar::ScrollableView::ScrollableView()
{
  SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
  int l = theme->get_part(PART_EDITOR_SELECTED_W)->w;
  int t = theme->get_part(PART_EDITOR_SELECTED_N)->h;
  int r = theme->get_part(PART_EDITOR_SELECTED_E)->w;
  int b = theme->get_part(PART_EDITOR_SELECTED_S)->h;

  jwidget_set_border(this, l, t, r, b);
}
Пример #7
0
ColorButton::ColorButton(const Color& color, int imgtype)
  : ButtonBase("", colorbutton_type(), JI_BUTTON, JI_BUTTON)
  , m_color(color)
  , m_imgtype(imgtype)
  , m_frame(NULL)
{
  jwidget_focusrest(this, true);

  setFont(static_cast<SkinTheme*>(getTheme())->getMiniFont());
}
Пример #8
0
inline IMapContext* getMapContext (const std::string& name)
{
	const std::string randomMapBase = "random";
	if (name.compare(0, randomMapBase.size(), randomMapBase) == 0) {
		const ThemeType& theme = getTheme(name);
		info(LOG_MAP, "use theme " + theme.name);
		RandomMapContext *ctx = new RandomMapContext(name, theme, 8, 18, 20, 14);
		return ctx;
	}
	return new LUAMapContext(name);
}
Пример #9
0
EditorView::EditorView(EditorView::Type type)
  : View()
  , m_type(type)
{
  SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
  int l = theme->get_part(PART_EDITOR_SELECTED_W)->w;
  int t = theme->get_part(PART_EDITOR_SELECTED_N)->h;
  int r = theme->get_part(PART_EDITOR_SELECTED_E)->w;
  int b = theme->get_part(PART_EDITOR_SELECTED_S)->h;

  jwidget_set_border(this, l, t, r, b);
  hideScrollBars();
}
Пример #10
0
void CThemes::readFile(const char *themename)
{
	if(themefile.loadConfig(themename))
	{
		getTheme(themefile);

		notifier = new CColorSetupNotifier;
		notifier->changeNotify(NONEXISTANT_LOCALE, NULL);
		hasThemeChanged = true;
		delete notifier;
	}
	else
		printf("[neutrino theme] %s not found\n", themename);
}
Пример #11
0
	Size ComboBox::getPrefSize() const {
		gsize_t max = 0;
		gsize_t pad = getTheme().getTextPadding();
		const Font& f = getGraphics()->getFont();
		for(auto it = _items.begin(); it != _items.end(); ++it) {
			gsize_t width = f.getStringWidth(*it);
			if(width > max)
				max = width;
			if(max > MAX_WIDTH) {
				max = MAX_WIDTH;
				break;
			}
		}
		return Size(max + pad * 2 + f.getSize().height + ARROW_PAD,f.getSize().height + pad * 2);
	}
Пример #12
0
bool EditorView::onProcessMessage(Message* msg)
{
  switch (msg->type) {

    case JM_SETPOS:
      // This avoid the displacement of the widgets in the viewport

      jrect_copy(this->rc, &msg->setpos.rect);
      updateView();
      return true;

    case JM_DRAW:
      {
        Widget* viewport = getViewport();
        Widget* child = reinterpret_cast<JWidget>(jlist_first_data(viewport->children));
        JRect pos = jwidget_get_rect(this);
        SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
        bool selected = false;

        switch (m_type) {

          // Only show the view selected if it is the current editor
          case CurrentEditorMode:
            selected = (child == current_editor);
            break;

          // Always show selected
          case AlwaysSelected:
            selected = true;
            break;

        }

        theme->draw_bounds_nw(ji_screen,
                              pos->x1, pos->y1,
                              pos->x2-1, pos->y2-1,
                              selected ? PART_EDITOR_SELECTED_NW:
                                         PART_EDITOR_NORMAL_NW, false);

        jrect_free(pos);
      }
      return true;

  }

  return View::onProcessMessage(msg);
}
Пример #13
0
void VoronoiWindow::themeComboBox_activated(const QString& themeName)
{
    TeTheme* theme = getTheme(themeName.latin1());
    if(theme == 0)
        return;
    // Updates the combo box with delimiters...
    TeLayer* layer = theme->layer();
    boxComboBox->setCurrentText(layer->name().c_str());
    
    // Lists attributes on the weightComboBox
    weightComboBox->clear();
    //if (text=="") text=themeComboBox->currentText().latin1();
    TeTable *attrTable = &layer->attrTables()[0];
    TeAttributeList * attrList=&attrTable->attributeList();
    for (std::vector<TeAttribute>::iterator i=attrList->begin(); i!=attrList->end();++i) {
        cout<<i->rep_.name_<<endl;
        weightComboBox->insertItem(i->rep_.name_);
    }
}
Пример #14
0
bool ColorBar::ScrollableView::onProcessMessage(Message* msg)
{
  switch (msg->type) {

    case JM_DRAW:
      {
        Viewport* viewport = getViewport();
        Widget* child = reinterpret_cast<Widget*>(jlist_first_data(viewport->children));
        SkinTheme* theme = static_cast<SkinTheme*>(getTheme());

        theme->draw_bounds_nw(ji_screen,
                              rc->x1, rc->y1,
                              rc->x2-1, rc->y2-1,
                              hasFocus() ? PART_EDITOR_SELECTED_NW:
                                           PART_EDITOR_NORMAL_NW, false);
      }
      return true;

  }
  return View::onProcessMessage(msg);
}
Пример #15
0
// @brief 读取设置
void DynamicData::loadAppConfig()
{
    QSettings configIniRead(CONFIG_FILE, QSettings::IniFormat);
    foreach ( const QString &key, _options.keys() ) {
        if ( configIniRead.contains(key) ) {
            QVariant value = configIniRead.value(key);
            if ( !value.isValid() || !_options[key].setValue(value) ){
                TyLogWarning("Invalid value for option \"%s\"", key.toUtf8().data());
            }
        }else{
            _options[key].reset();
        }
    }
    loadUserSaveFile(userSettingsFileName());
    if (!getThemeList().contains(getTheme())){
        TyLogFatal("not exists theme file, reset theme to default \"%s\"", DEFAULT_THEME);
        _options[KEY_THEME].reset();
    }
//    _language = configIniRead->value(KEY_LANGUAGE, "").toString();
//    if(_language.isEmpty())// 当取不到语言设置时,使用系统当前语言
//        _language = QLocale::system().name();
    TyLogInfo("Load AppConfig: %s", StringUtils::toString(_options).toUtf8().data());
}
Пример #16
0
// setup default Colors
void CThemes::setupDefaultColors()
{
	CConfigFile empty(':');
	getTheme(empty);
}
Пример #17
0
void LinkLabel::onPaint(PaintEvent& ev)
{
  getTheme()->paintLinkLabel(ev);
}
Пример #18
0
void TextBox::onPaint(PaintEvent& ev)
{
  getTheme()->paintTextBox(ev);
}
Пример #19
0
void ListBox::onPaint(PaintEvent& ev)
{
  getTheme()->paintListBox(ev);
}
Пример #20
0
bool AppearanceGTK2::saveSettings(const QString& gtkrcFile) const
{
    QFile gtkrc(gtkrcFile);
    gtkrc.remove();

    if(!gtkrc.open(QIODevice::WriteOnly | QIODevice::Text)) {
        qWarning() << "There was unable to write the file .gtkrc-2.0";
        return false;
    }

    QTextStream flow(&gtkrc);

    flow << "# File created by KDE Gtk Config" << "\n"
         << "# Configs for GTK2 programs \n\n";

    QString themeGtkrcFile=themesGtkrcFile(getTheme());
    
    //TODO: is this really needed?
    if(!themeGtkrcFile.isEmpty())
        flow << "include \"" << themeGtkrcFile << "\"\n"; //We include the theme's gtkrc file
    
    if(QFile::exists("/etc/gtk-2.0/gtkrc"))
        flow  << "include \"/etc/gtk-2.0/gtkrc\"\n"; //We include the /etc's config file

    int nameEnd = m_settings["font"].lastIndexOf(QRegExp(" ([0-9]+|bold|italic)"));
    QString fontFamily = m_settings["font"].left(nameEnd);

    //TODO: is this really needed?
    flow << "style \"user-font\" \n"
            << "{\n"
            << "\tfont_name=\""<< fontFamily << "\"\n"
            << "}\n";
    
    flow << "widget_class \"*\" style \"user-font\"\n";
    flow << "gtk-font-name=\"" << m_settings["font"] << "\"\n";
    flow << "gtk-theme-name=\"" << m_settings["theme"] << "\"\n";
    flow << "gtk-icon-theme-name=\""<< m_settings["icon"] << "\"\n";
    flow << "gtk-fallback-icon-theme=\"" << m_settings["icon_fallback"] << "\"\n";
    flow << "gtk-cursor-theme-name=\"" << m_settings["cursor"] << "\"\n";
    flow << "gtk-toolbar-style=" << m_settings["toolbar_style"] << "\n";
    flow << "gtk-menu-images=" << m_settings["show_icons_menus"] << "\n";
    flow << "gtk-button-images=" << m_settings["show_icons_buttons"] << "\n";
    flow << "gtk-primary-button-warps-slider=" << m_settings["primary_button_warps_slider"] << "\n";
    
    //we're done with the  ~/.gtk-2.0 file
    gtkrc.close();
    
    //TODO: do we really need the linked file?
    if(QFile::remove(gtkrcFile+"-kde4"))
        qDebug() << "ready to create the symbolic link";
    
    if( !QFile::link(gtkrcFile, gtkrcFile+"-kde4") )
        qWarning() << "Couldn't create the symboling link to .gtkrc-2.0-kde4 :(";
//     else
//         qDebug() << "Symbolic link created for .gtkrc-2.0-kde4 :D";
    
    if(gtkrcFile==defaultConfigFile())
        QProcess::startDetached(QStandardPaths::findExecutable("reload_gtk_apps"));
    
    return true;
}
Пример #21
0
void Menu::onPaint(PaintEvent& ev)
{
  getTheme()->paintMenu(ev);
}
Пример #22
0
	int ComboBox::ItemWindow::getItemAt(const Pos &pos) {
		return pos.y / (getGraphics()->getFont().getSize().height + getTheme().getTextPadding() * 2);
	}
Пример #23
0
ColorBar::ColorBar(int align)
  : Box(align)
  , m_paletteButton("Edit Palette", JI_BUTTON)
  , m_paletteView(false)
  , m_fgColor(Color::fromIndex(15), IMAGE_INDEXED)
  , m_bgColor(Color::fromIndex(0), IMAGE_INDEXED)
  , m_lock(false)
{
  setBorder(gfx::Border(1*jguiscale()));
  child_spacing = 1*jguiscale();

  m_paletteView.setBoxSize(6*jguiscale());
  m_paletteView.setColumns(4);
  m_fgColor.setPreferredSize(0, m_fgColor.getPreferredSize().h);
  m_bgColor.setPreferredSize(0, m_bgColor.getPreferredSize().h);

  m_scrollableView.attachToView(&m_paletteView);
  int w = (m_scrollableView.getBorder().getSize().w +
           m_scrollableView.getViewport()->getBorder().getSize().w +
           m_paletteView.getPreferredSize().w +
           getTheme()->scrollbar_size);

  jwidget_set_min_size(&m_scrollableView, w, 0);

  m_scrollableView.setExpansive(true);

  addChild(&m_paletteButton);
  addChild(&m_scrollableView);
  addChild(&m_fgColor);
  addChild(&m_bgColor);

  this->border_width.l = 2*jguiscale();
  this->border_width.t = 2*jguiscale();
  this->border_width.r = 2*jguiscale();
  this->border_width.b = 2*jguiscale();
  this->child_spacing = 2*jguiscale();

  m_paletteView.IndexChange.connect(&ColorBar::onPaletteIndexChange, this);
  m_fgColor.Change.connect(&ColorBar::onFgColorButtonChange, this);
  m_bgColor.Change.connect(&ColorBar::onBgColorButtonChange, this);

  // Set background color reading its value from the configuration.
  setBgColor(get_config_color("ColorBar", "BG", getBgColor()));

  // Clear the selection of the BG color in the palette.
  m_paletteView.clearSelection();

  // Set foreground color reading its value from the configuration.
  setFgColor(get_config_color("ColorBar", "FG", getFgColor()));

  // Change color-bar background color (not ColorBar::setBgColor)
  Widget::setBgColor(((SkinTheme*)getTheme())->get_tab_selected_face_color());
  m_paletteView.setBgColor(((SkinTheme*)getTheme())->get_tab_selected_face_color());

  // Change labels foreground color
  setup_mini_look(&m_paletteButton);
  m_paletteButton.setFont(((SkinTheme*)getTheme())->getMiniFont());
  m_paletteButton.Click.connect(Bind<void>(&ColorBar::onPaletteButtonClick, this));

  setDoubleBuffered(true);

  onColorButtonChange(getFgColor());
}
Пример #24
0
	Size Editable::getPrefSize() const {
		gsize_t pad = getTheme().getTextPadding();
		return Size(DEF_WIDTH + pad * 2,getGraphics()->getFont().getSize().height + pad * 2);
	}
Пример #25
0
	void Editable::paint(Graphics &g) {
		Size fsize = g.getFont().getSize();
		Size size = getSize();
		int count = getMaxCharNum(g);
		gpos_t ystart = (size.height - fsize.height) / 2;
		int start = _begin;

		/* if begin could not be determined previously, try that again */
		if(_begin == std::numeric_limits<size_t>::max()) {
			setBegin();
			assert(_begin != std::numeric_limits<size_t>::max());
			start = _begin;
		}

		string text = _secret ? string(_str.length(),'*') : _str;
		count = MIN((int)text.length(),count);

		g.setColor(getTheme().getColor(Theme::TEXT_BACKGROUND));
		g.fillRect(1,1,size.width - 2,size.height - 2);
		g.setColor(getTheme().getColor(_focused ? Theme::CTRL_DARKBORDER : Theme::CTRL_BORDER));
		g.drawRect(Pos(0,0),size);

		gsize_t pad = getTheme().getTextPadding();
		if(_selStart != -1) {
			int spos;
			/* selection background */
			g.setColor(getTheme().getColor(Theme::SEL_BACKGROUND));
			spos = (start > _selStart ? 0 : (_selStart - start));
			g.fillRect(pad + fsize.width * spos,
					ystart - CURSOR_OVERLAP,
					fsize.width * (MIN(count - spos,MIN(_selEnd - start,_selEnd - _selStart))),
					fsize.height + CURSOR_OVERLAP * 2);

			/* part before selection */
			if(start < _selStart) {
				g.setColor(getTheme().getColor(Theme::TEXT_FOREGROUND));
				g.drawString(pad,ystart,text,start,MIN(count,_selStart));
			}
			/* selection */
			g.setColor(getTheme().getColor(Theme::SEL_FOREGROUND));
			g.drawString(pad + fsize.width * spos,ystart,text,MAX(start,_selStart),
					(MIN(count - spos,MIN(_selEnd - start,_selEnd - _selStart))));
			/* part behind selection */
			if(_selEnd < start + count) {
				g.setColor(getTheme().getColor(Theme::TEXT_FOREGROUND));
				spos = _selEnd - start;
				g.drawString(pad + spos * fsize.width,ystart,text,_selEnd,
					MIN(count - spos,MIN((int)text.length() - start,(int)text.length() - _selEnd)));
			}
		}
		else {
			g.setColor(getTheme().getColor(Theme::TEXT_FOREGROUND));
			g.drawString(pad,ystart,text,start,count);
		}

		if(_focused) {
			g.setColor(getTheme().getColor(Theme::CTRL_DARKBORDER));
			g.fillRect(pad + fsize.width * (_cursor - start),
					ystart - CURSOR_OVERLAP,CURSOR_WIDTH,fsize.height + CURSOR_OVERLAP * 2);
		}
	}
Пример #26
0
void Slider::onPaint(PaintEvent& ev)
{
  getTheme()->paintSlider(ev);
}
Пример #27
0
void Splitter::onPaint(PaintEvent& ev)
{
  getTheme()->paintSplitter(ev);
}
Пример #28
0
	void Panel::paintBackground(Graphics &g) {
		Rectangle prect = g.getPaintRect();
		g.setColor(getTheme().getColor(Theme::CTRL_BACKGROUND));
		g.fillRect(prect.getPos(),prect.getSize());
	}
Пример #29
0
bool TextBox::onProcessMessage(Message* msg)
{
  switch (msg->type) {

    case JM_DRAW:
      getTheme()->draw_textbox(this, &msg->draw.rect);
      return true;

    case JM_SIGNAL:
      if (msg->signal.num == JI_SIGNAL_SET_TEXT) {
        View* view = View::getView(this);
        if (view)
          view->updateView();
      }
      break;

    case JM_KEYPRESSED:
      if (hasFocus()) {
        View* view = View::getView(this);
        if (view) {
          gfx::Rect vp = view->getViewportBounds();
          gfx::Point scroll = view->getViewScroll();
          int textheight = jwidget_get_text_height(this);

          switch (msg->key.scancode) {

            case KEY_LEFT:
              scroll.x -= vp.w/2;
              view->setViewScroll(scroll);
              break;

            case KEY_RIGHT:
              scroll.x += vp.w/2;
              view->setViewScroll(scroll);
              break;

            case KEY_UP:
              scroll.y -= vp.h/2;
              view->setViewScroll(scroll);
              break;

            case KEY_DOWN:
              scroll.y += vp.h/2;
              view->setViewScroll(scroll);
              break;

            case KEY_PGUP:
              scroll.y -= (vp.h-textheight);
              view->setViewScroll(scroll);
              break;

            case KEY_PGDN:
              scroll.y += (vp.h-textheight);
              view->setViewScroll(scroll);
              break;

            case KEY_HOME:
              scroll.y = 0;
              view->setViewScroll(scroll);
              break;

            case KEY_END:
              scroll.y = jrect_h(this->rc) - vp.h;
              view->setViewScroll(scroll);
              break;

            default:
              return false;
          }
        }
        return true;
      }
      break;

    case JM_BUTTONPRESSED: {
      View* view = View::getView(this);
      if (view) {
        captureMouse();
        jmouse_set_cursor(JI_CURSOR_SCROLL);
        return true;
      }
      break;
    }

    case JM_MOTION: {
      View* view = View::getView(this);
      if (view && hasCapture()) {
        gfx::Rect vp = view->getViewportBounds();
        gfx::Point scroll = view->getViewScroll();

        scroll.x += jmouse_x(1) - jmouse_x(0);
        scroll.y += jmouse_y(1) - jmouse_y(0);

        view->setViewScroll(scroll);

        jmouse_control_infinite_scroll(vp);
      }
      break;
    }

    case JM_BUTTONRELEASED: {
      View* view = View::getView(this);
      if (view && hasCapture()) {
        releaseMouse();
        jmouse_set_cursor(JI_CURSOR_NORMAL);
        return true;
      }
      break;
    }

    case JM_WHEEL: {
      View* view = View::getView(this);
      if (view) {
        gfx::Point scroll = view->getViewScroll();

        scroll.y += (jmouse_z(1) - jmouse_z(0)) * jwidget_get_text_height(this)*3;

        view->setViewScroll(scroll);
      }
      break;
    }
  }

  return Widget::onProcessMessage(msg);
}
Пример #30
0
void Entry::onPaint(PaintEvent& ev)
{
  getTheme()->paintEntry(ev);
}