本文整理汇总了C++中HasFocus函数的典型用法代码示例。如果您正苦于以下问题:C++ HasFocus函数的具体用法?C++ HasFocus怎么用?C++ HasFocus使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HasFocus函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Tag
void View::PersistData(PersistStatus status, std::string anonId, PersistMap &storage) {
// Remember if this view was a focused view.
std::string tag = Tag();
if (tag.empty()) {
tag = anonId;
}
const std::string focusedKey = "ViewFocused::" + tag;
switch (status) {
case UI::PERSIST_SAVE:
if (HasFocus()) {
storage[focusedKey].resize(1);
}
break;
case UI::PERSIST_RESTORE:
if (storage.find(focusedKey) != storage.end()) {
SetFocus();
}
break;
}
}
示例2: OnMouseButtonPressed
void DragManipulator::OnMouseButtonPressed(const Mouse::Button& pButton)
{
if(pButton != Mouse::Button_Left || !HasFocus())
return;
Renderer* renderer = GraphicSubsystem::Instance()->GetRenderer();
GD_ASSERT(renderer);
// Get the position of the mouse in the screen and widget.
Int32 x, y;
InputSubsystem::GetMouse().GetPos(x, y);
mScreenClickPos = Vector2f(x, y);
QPoint widgetPos = mEditor->GetMainView()->mapFromGlobal(QPoint(x, y));
mClickPos = Vector2f(widgetPos.x(), widgetPos.y());
// Calculate the center position of the manipulated objects.
mWorldPosition = GetCenterPosition();
UpdateOriginPositions();
}
示例3: PaintMainMenuBorder
inline void
TabMenuDisplay::PaintMainMenuItems(Canvas &canvas) const
{
PaintMainMenuBorder(canvas);
const bool is_focused = !HasCursorKeys() || HasFocus();
unsigned main_menu_index = 0;
for (auto i = main_menu_buttons.begin(),
end = main_menu_buttons.end(); i != end;
++i, ++main_menu_index) {
const bool isDown = main_menu_index == down_index.main_index &&
!down_index.IsSub() && !drag_off_button;
const bool is_selected = isDown ||
main_menu_index == GetPageMainIndex(cursor);
main_menu_buttons[main_menu_index].Draw(canvas, look,
is_focused, isDown, is_selected);
}
}
示例4: Pos
void ActiveWidget::AcceptInputReset( const InputReset &request)
{
Widget *sender = request.Sender();
_cursor = Pos(-1,-1);
int i;
for (i=0; i!=NUM_BUTTONS; ++i)
{
if ( _was_touched[i] )
{
if (_was_over) OnMoveOut[i].Schedule_1( _cursor );
OnRelease[i].Schedule_1( _cursor );
}
_was_touched[i] = false;
_is_dragging[i] = false;
_mb_down[i] = false;
}
for (i=0; i!=_pressed_keys.Size(); ++i)
{
bool likes_this_key = false;
likes_this_key |= _on_path_key_mask.GetBit( _pressed_keys[i] );
likes_this_key |= HasFocus() && _key_mask.GetBit( _pressed_keys[i] );
if ( likes_this_key )
{
OnKeyRelease.Schedule_1( _pressed_keys[i]);
}
}
_pressed_keys.Clear();
if (_was_over || _unsent_outside)
{
OnMoveOutside.Schedule_1( _cursor ); HideHint();
}
_was_over = false;
_unsent_outside = false;
_result = false;
Widget::Accept( InputReset(this) );
}
示例5: Draw
void Choice::Draw(UIContext &dc) {
if (!IsSticky()) {
ClickableItem::Draw(dc);
} else {
Style style = dc.theme->itemStyle;
if (highlighted_) {
style = dc.theme->itemHighlightedStyle;
}
if (down_) {
style = dc.theme->itemDownStyle;
}
if (HasFocus()) {
style = dc.theme->itemFocusedStyle;
}
dc.FillRect(style.background, bounds_);
}
Style style = dc.theme->itemStyle;
if (!IsEnabled())
style = dc.theme->itemDisabledStyle;
if (atlasImage_ != -1) {
dc.Draw()->DrawImage(atlasImage_, bounds_.centerX(), bounds_.centerY(), 1.0f, style.fgColor, ALIGN_CENTER);
} else {
int paddingX = 12;
dc.SetFontStyle(dc.theme->uiFont);
if (centered_) {
dc.DrawText(text_.c_str(), bounds_.centerX(), bounds_.centerY(), style.fgColor, ALIGN_CENTER);
} else {
if (iconImage_ != -1) {
dc.Draw()->DrawImage(iconImage_, bounds_.x2() - 32 - paddingX, bounds_.centerY(), 0.5f, style.fgColor, ALIGN_CENTER);
}
dc.DrawText(text_.c_str(), bounds_.x + paddingX, bounds_.centerY(), style.fgColor, ALIGN_VCENTER);
}
}
if (selected_) {
dc.Draw()->DrawImage(dc.theme->checkOn, bounds_.x2() - 40, bounds_.centerY(), 1.0f, style.fgColor, ALIGN_CENTER);
}
}
示例6: GetMainMenuButton
inline void
TabMenuDisplay::PaintSubMenuItems(Canvas &canvas,
const unsigned CaptionStyle) const
{
const MainMenuButton &main_button =
GetMainMenuButton(GetPageMainIndex(cursor));
PaintSubMenuBorder(canvas, main_button);
assert(main_button.first_page_index < buttons.size());
assert(main_button.last_page_index < buttons.size());
const bool is_focused = !HasCursorKeys() || HasFocus();
for (unsigned first_page_index = main_button.first_page_index,
last_page_index = main_button.last_page_index,
page_index = first_page_index;
page_index <= last_page_index; ++page_index) {
const unsigned sub_index = page_index - first_page_index;
const bool is_pressed = sub_index == down_index.sub_index &&
!drag_off_button;
const bool is_cursor = page_index == cursor;
const bool is_selected = is_pressed || is_cursor;
canvas.SetTextColor(look.list.GetTextColor(is_selected, is_focused,
is_pressed));
canvas.SetBackgroundColor(look.list.GetBackgroundColor(is_selected,
is_focused,
is_pressed));
const PixelRect &rc = GetSubMenuButtonSize(page_index);
TabDisplay::PaintButton(canvas, CaptionStyle,
gettext(pages[page_index].menu_caption),
rc,
nullptr, is_cursor,
false);
}
}
示例7: dc
void AudioDisplay::OnPaint(wxPaintEvent&)
{
if (!audio_renderer_provider) return;
wxAutoBufferedPaintDC dc(this);
wxRect audio_bounds(0, audio_top, GetClientSize().GetWidth(), audio_height);
bool redraw_scrollbar = false;
bool redraw_timeline = false;
for (wxRegionIterator region(GetUpdateRegion()); region; ++region)
{
wxRect updrect = region.GetRect();
redraw_scrollbar |= scrollbar->GetBounds().Intersects(updrect);
redraw_timeline |= timeline->GetBounds().Intersects(updrect);
if (audio_bounds.Intersects(updrect))
{
TimeRange updtime(
std::max(0, TimeFromRelativeX(updrect.x - foot_size)),
std::max(0, TimeFromRelativeX(updrect.x + updrect.width + foot_size)));
PaintAudio(dc, updtime, updrect);
PaintMarkers(dc, updtime);
PaintLabels(dc, updtime);
}
}
if (track_cursor_pos >= 0)
{
PaintTrackCursor(dc);
}
if (redraw_scrollbar)
scrollbar->Paint(dc, HasFocus());
if (redraw_timeline)
timeline->Paint(dc);
}
示例8: OnAction
bool CGUIControl::OnAction(const CAction &action)
{
if (HasFocus())
{
switch (action.GetID())
{
case ACTION_MOVE_DOWN:
OnDown();
return true;
case ACTION_MOVE_UP:
OnUp();
return true;
case ACTION_MOVE_LEFT:
OnLeft();
return true;
case ACTION_MOVE_RIGHT:
OnRight();
return true;
case ACTION_SHOW_INFO:
return OnInfo();
case ACTION_NAV_BACK:
return OnBack();
case ACTION_NEXT_CONTROL:
OnNextControl();
return true;
case ACTION_PREV_CONTROL:
OnPrevControl();
return true;
}
}
return false;
}
示例9: Painter
void CNavigationBar::Draw(void) const {
CWindow::Draw();
if (m_pSDLSurface)
{
CPainter Painter(m_pSDLSurface, CPainter::PAINT_REPLACE);
Painter.Draw3DLoweredRect(m_WindowRect.SizeRect(), DEFAULT_BACKGROUND_COLOR);
SDL_Rect PictureSourceRect = CRect(CPoint(0, 0), 30, 30).SDLRect();
for (unsigned int i = 0; i < m_Items.size(); ++i)
{
CRect ItemRect(CPoint(m_ClientRect.Left() + i*m_iItemWidth, m_ClientRect.Top()),
m_iItemWidth , m_iItemHeight);
if (ItemRect.Overlaps(m_ClientRect))
{
ItemRect.ClipTo(m_ClientRect);
ItemRect.SetBottom(ItemRect.Bottom() - 1);
ItemRect.SetRight(ItemRect.Right() - 1);
if (i == m_iSelectedItem)
{
Painter.DrawRect(ItemRect, true, CApplication::Instance()->GetDefaultSelectionColor(), CApplication::Instance()->GetDefaultSelectionColor());
}
if (i == m_iFocusedItem && HasFocus())
{
ItemRect.Grow(1);
Painter.DrawRect(ItemRect, false, CApplication::Instance()->GetDefaultSelectionColor() * 0.7);
ItemRect.Grow(-1);
}
ItemRect.Grow(-1);
// '- CPoint(0,1)' is to move the reference point one pixel up (otherwise the lowest pixels of p,g,q,y
// etc. are not fully visible.
m_RenderedStrings.at(i).Draw(m_pSDLSurface, ItemRect, ItemRect.BottomLeft() - CPoint(0, 1) + CPoint(ItemRect.Width()/2, 0), m_Items[i].ItemColor);
// Draw the picture (if available):
if (m_Bitmaps.at(i) != nullptr) {
SDL_Rect DestRect = ItemRect.Move(9, 1).SDLRect();
SDL_BlitSurface(m_Bitmaps.at(i)->Bitmap(), &PictureSourceRect, m_pSDLSurface, &DestRect);
}
}
}
}
}
示例10: GetClientRect
void
WndCustomButton::OnPaint(Canvas &canvas)
{
#ifdef HAVE_CLIPPING
/* background and selector */
canvas.Clear(look.background_brush);
#endif
PixelRect rc = GetClientRect();
// Draw focus rectangle
if (HasFocus()) {
canvas.DrawFilledRectangle(rc, look.focused.background_color);
canvas.SetTextColor(IsEnabled()
? look.focused.text_color : look.button.disabled.color);
} else {
canvas.DrawFilledRectangle(rc, look.background_color);
canvas.SetTextColor(IsEnabled() ? look.text_color : look.button.disabled.color);
}
// If button has text on it
tstring caption = get_text();
if (caption.empty())
return;
// If button is pressed, offset the text for 3D effect
if (is_down())
OffsetRect(&rc, 1, 1);
canvas.SelectNullPen();
canvas.SetBackgroundTransparent();
#ifndef USE_GDI
canvas.formatted_text(&rc, caption.c_str(), GetTextStyle());
#else
unsigned s = DT_CENTER | DT_NOCLIP | DT_WORDBREAK;
canvas.Select(*(look.button.font));
canvas.formatted_text(&rc, caption.c_str(), s);
#endif
}
示例11: Key
void Clickable::Key(const KeyInput &key) {
if (!HasFocus() && key.deviceId != DEVICE_ID_MOUSE) {
down_ = false;
return;
}
// TODO: Replace most of Update with this.
if (key.flags & KEY_DOWN) {
if (IsAcceptKeyCode(key.keyCode)) {
down_ = true;
}
}
if (key.flags & KEY_UP) {
if (IsAcceptKeyCode(key.keyCode)) {
if (down_) {
Click();
down_ = false;
}
} else if (IsEscapeKeyCode(key.keyCode)) {
down_ = false;
}
}
}
示例12: wxCHECK_RET
void wxBitmapButton::OnSetBitmap()
{
wxCHECK_RET( m_widget != NULL, wxT("invalid bitmap button") );
InvalidateBestSize();
wxBitmap the_one;
if (!IsThisEnabled())
the_one = GetBitmapDisabled();
else if (m_isSelected)
the_one = GetBitmapPressed();
else if (HasFocus())
the_one = GetBitmapFocus();
if (!the_one.IsOk())
{
the_one = GetBitmapLabel();
if (!the_one.IsOk())
return;
}
GdkBitmap *mask = NULL;
if (the_one.GetMask()) mask = the_one.GetMask()->GetBitmap();
GtkWidget *child = BUTTON_CHILD(m_widget);
if (child == NULL)
{
// initial bitmap
GtkWidget *pixmap;
pixmap = gtk_pixmap_new(the_one.GetPixmap(), mask);
gtk_widget_show(pixmap);
gtk_container_add(GTK_CONTAINER(m_widget), pixmap);
}
else
{ // subsequent bitmaps
GtkPixmap *pixmap = GTK_PIXMAP(child);
gtk_pixmap_set(pixmap, the_one.GetPixmap(), mask);
}
}
示例13: Process
void CGUIMoverControl::Process(unsigned int currentTime, CDirtyRegionList &dirtyregions)
{
if (m_bInvalidated)
{
m_imgFocus.SetWidth(m_width);
m_imgFocus.SetHeight(m_height);
m_imgNoFocus.SetWidth(m_width);
m_imgNoFocus.SetHeight(m_height);
}
if (HasFocus())
{
unsigned int alphaCounter = m_frameCounter + 2;
unsigned int alphaChannel;
if ((alphaCounter % 128) >= 64)
alphaChannel = alphaCounter % 64;
else
alphaChannel = 63 - (alphaCounter % 64);
alphaChannel += 192;
if (SetAlpha( (unsigned char)alphaChannel ))
MarkDirtyRegion();
m_imgFocus.SetVisible(true);
m_imgNoFocus.SetVisible(false);
m_frameCounter++;
}
else
{
if (SetAlpha(0xff))
MarkDirtyRegion();
m_imgFocus.SetVisible(false);
m_imgNoFocus.SetVisible(true);
}
m_imgFocus.Process(currentTime);
m_imgNoFocus.Process(currentTime);
CGUIControl::Process(currentTime, dirtyregions);
}
示例14: GetSize
void ColorPusher::Paint(Draw& w)
{
Size sz = GetSize();
w.DrawRect(sz, push ? SColorHighlight : SColorPaper);
int ty = (sz.cy - StdFont().Info().GetHeight()) / 2;
if(withtext) {
w.DrawRect(2, 2, sz.cy - 4, sz.cy - 4, color);
DrawFrame(w, 1, 1, sz.cy - 2, sz.cy - 2, SColorText);
w.DrawText(sz.cy + 2, ty, FormatColor(color), StdFont(), SColorText());
}
else {
if(!IsNull(color)) {
w.DrawRect(2, 2, sz.cx - 4, sz.cy - 4, color);
DrawFrame(w, 1, 1, sz.cx - 2, sz.cy - 2, SColorText);
}
else
if(!withtext)
w.DrawText(max(2, (sz.cx - GetTextSize(nulltext, StdFont()).cx) / 2), ty,
nulltext, StdFont(), SColorText());
}
if(HasFocus())
DrawFocus(w, GetSize());
}
示例15: PerformLayout
virtual void PerformLayout()
{
TextImage *textImage = GetTextImage();
if (m_bSelected)
{
VPANEL focus = input()->GetFocus();
// if one of the children of the SectionedListPanel has focus, then 'we have focus' if we're selected
if (HasFocus() || (focus && ipanel()->HasParent(focus, GetVParent())))
{
textImage->SetColor(m_ArmedFgColor2);
}
else
{
textImage->SetColor(m_FgColor2);
}
}
else
{
textImage->SetColor(GetFgColor());
}
BaseClass::PerformLayout();
Repaint();
}