本文整理汇总了C++中Panel类的典型用法代码示例。如果您正苦于以下问题:C++ Panel类的具体用法?C++ Panel怎么用?C++ Panel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Panel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: surface
void LoadingProgress::PaintBackground()
{
int screenWide, screenTall;
surface()->GetScreenSize( screenWide, screenTall );
if ( m_bDrawBackground && m_pBGImage )
{
int x, y, wide, tall;
m_pBGImage->GetBounds( x, y, wide, tall );
surface()->DrawSetColor( Color( 255, 255, 255, 255 ) );
surface()->DrawSetTexture( m_pBGImage->GetImage()->GetID() );
surface()->DrawTexturedRect( x, y, x+wide, y+tall );
}
if ( m_bDrawPoster && m_pPoster && m_pPoster->GetImage() )
{
if ( m_bFullscreenPoster )
{
surface()->DrawSetColor( Color( 255, 255, 255, 255 ) );
surface()->DrawSetTexture( m_pPoster->GetImage()->GetID() );
surface()->DrawTexturedRect( 0, 0, screenWide, screenTall );
}
else
{
// fill black
surface()->DrawSetColor( Color( 0, 0, 0, 255 ) );
surface()->DrawFilledRect( 0, 0, screenWide, screenTall );
// overlay poster
int x, y, wide, tall;
m_pPoster->GetBounds( x, y, wide, tall );
surface()->DrawSetColor( Color( 255, 255, 255, 255 ) );
surface()->DrawSetTexture( m_pPoster->GetImage()->GetID() );
surface()->DrawTexturedRect( x, y, x+wide, y+tall );
}
}
if ( m_bDrawPoster && m_pFooter )
{
int screenWidth, screenHeight;
CBaseModPanel::GetSingleton().GetSize( screenWidth, screenHeight );
int x, y, wide, tall;
m_pFooter->GetBounds( x, y, wide, tall );
surface()->DrawSetColor( m_pFooter->GetBgColor() );
surface()->DrawFilledRect( 0, y, x+screenWidth, y+tall );
}
// this is where the spinner draws
bool bRenderSpinner = ( m_bDrawSpinner && m_pWorkingAnim );
Panel *pWaitscreen = CBaseModPanel::GetSingleton().GetWindow( WT_GENERICWAITSCREEN );
if ( pWaitscreen && pWaitscreen->IsVisible() && ( m_LoadingWindowType == LWT_BKGNDSCREEN ) )
bRenderSpinner = false; // Don't render spinner if the progress screen is displaying progress
if ( bRenderSpinner )
{
int x, y, wide, tall;
wide = tall = scheme()->GetProportionalScaledValue( 45 );
x = scheme()->GetProportionalScaledValue( 45 ) - wide/2;
y = screenTall - scheme()->GetProportionalScaledValue( 32 ) - tall/2;
m_pWorkingAnim->GetImage()->SetFrame( m_pWorkingAnim->GetFrame() );
surface()->DrawSetColor( Color( 255, 255, 255, 255 ) );
surface()->DrawSetTexture( m_pWorkingAnim->GetImage()->GetID() );
surface()->DrawTexturedRect( x, y, x+wide, y+tall );
}
if ( m_bDrawProgress && m_pProTotalProgress )
{
int x, y, wide, tall;
m_pProTotalProgress->GetBounds( x, y, wide, tall );
int iScreenWide, iScreenTall;
surface()->GetScreenSize( iScreenWide, iScreenTall );
float f = m_pProTotalProgress->GetProgress();
f = clamp( f, 0, 1.0f );
// Textured bar
surface()->DrawSetColor( Color( 255, 255, 255, 255 ) );
// Texture BG
surface()->DrawSetTexture( m_textureID_LoadingBarBG );
surface()->DrawTexturedRect( x, y, x + wide, y + tall );
surface()->DrawSetTexture( m_textureID_LoadingBar );
// YWB 10/13/2009: If we don't crop the texture coordinate down then we will see a jitter of the texture as the texture coordinate and the rounded width
// alias
int nIntegerWide = f * wide;
float flUsedFrac = (float)nIntegerWide / (float)wide;
DrawTexturedRectParms_t params;
params.x0 = x;
params.y0 = y;
params.x1 = x + nIntegerWide;
params.y1 = y + tall;
params.s0 = 0;
//.........这里部分代码省略.........
示例2: Assert
//-----------------------------------------------------------------------------
// Purpose: respond to cursor movments
//-----------------------------------------------------------------------------
bool BuildGroup::CursorMoved(int x, int y, Panel *panel)
{
Assert(panel);
if ( !m_hBuildDialog.Get() )
{
if ( panel->GetParent() )
{
EditablePanel *ep = dynamic_cast< EditablePanel * >( panel->GetParent() );
if ( ep )
{
BuildGroup *bg = ep->GetBuildGroup();
if ( bg && bg != this )
{
bg->CursorMoved( x, y, panel );
}
}
}
return false;
}
// no moving uneditable panels
// commented out because this has issues with panels moving
// to front and obscuring other panels
//if (!panel->IsBuildModeEditable())
// return;
if (_dragging)
{
input()->GetCursorPos(x, y);
if (_dragMouseCode == MOUSE_RIGHT)
{
int newW = max( 1, _dragStartPanelSize[ 0 ] + x - _dragStartCursorPos[0] );
int newH = max( 1, _dragStartPanelSize[ 1 ] + y - _dragStartCursorPos[1] );
bool shift = ( input()->IsKeyDown(KEY_LSHIFT) || input()->IsKeyDown(KEY_RSHIFT) );
bool ctrl = ( input()->IsKeyDown(KEY_LCONTROL) || input()->IsKeyDown(KEY_RCONTROL) );
if ( shift )
{
newW = _dragStartPanelSize[ 0 ];
}
if ( ctrl )
{
newH = _dragStartPanelSize[ 1 ];
}
panel->SetSize( newW, newH );
ApplySnap(panel);
}
else
{
for (int i=0; i < _controlGroup.Count(); ++i)
{
// now fix offset of member panels with respect to the one we are dragging
Panel *groupMember = _controlGroup[i].Get();
groupMember->SetPos(_dragStartPanelPos[0] + _groupDeltaX[i] +(x-_dragStartCursorPos[0]), _dragStartPanelPos[1] + _groupDeltaY[i] +(y-_dragStartCursorPos[1]));
ApplySnap(groupMember);
}
}
// update the build dialog
if (m_hBuildDialog)
{
KeyValues *keyval = new KeyValues("UpdateControlData");
keyval->SetPtr("panel", GetCurrentPanel());
ivgui()->PostMessage(m_hBuildDialog->GetVPanel(), keyval, NULL);
keyval = new KeyValues("EnableSaveButton");
ivgui()->PostMessage(m_hBuildDialog->GetVPanel(), keyval, NULL);
}
panel->Repaint();
panel->CallParentFunction(new KeyValues("Repaint"));
}
return true;
}
示例3: add
void add()
{
Panel add ;
Panel scribble;
add.init(6,56,getmaxx()-5,getmaxy()-7,THIN,IN);
add.show();
add.shape("ADD");
get_current_settings( );
cmpna();
Panel move;
move.init(220,120,525,455,OUT,THIN);
move.show( );
move.shape("ADD");
cmpad();
move.init(220,120,525,455,OUT,THIN);
move.show( );
move.shape("ADD");
scribble.init(6,56,getmaxx()-5,getmaxy()-7,THIN,IN);
scribble.show();
add.show();
add.shape("ADD");
passins();
move.init(220,120,525,455,OUT,THIN);
move.show( );
move.shape("ADD");
taxation();
move.init(220,120,525,455,OUT,THIN);
move.show( );
move.shape("ADD");
runner();
int cnt=0;
cnt++;
scribble.init(6,56,getmaxx()-5,getmaxy()-7,THIN,IN);
scribble.show();
}
示例4: ReloadControlSettings
//.........这里部分代码省略.........
if (pLabels[0])
pLabels[0]->SetText(sLabel1.str().c_str());
if (pLabels[1])
pLabels[1]->SetText(sLabel2.str().c_str());
const char szPlayerPreviewTemplate[] =
" \"model\"\n"
" {\n"
" \"spotlight\" \"1\"\n"
" \"modelname\" \"models/player/frank.mdl\"\n"
" \"origin_z\" \"-57\"\n"
" \"origin_y\" \"10\"\n"
" \"origin_x\" \"110\"\n"
" \"angles_y\" \"180\"\n"
" \"animation\"\n"
" {\n"
" \"sequence\" \"m1911_idle\"\n"
" \"pose_parameters\"\n"
" {\n"
" \"body_yaw\" \"25.0\"\n"
" \"body_pitch\" \"-30.0\"\n"
" }\n"
" }\n"
" \"attached_model\"\n"
" {\n"
" \"modelname\" \"models/weapons/m1911.mdl\"\n"
" }\n"
" }";
CModelPanel *pPlayerPreview = dynamic_cast<CModelPanel *>(FindChildByName("player_preview"));
CSDKWeaponInfo* pWeaponInfo = NULL;
if (eFirst)
pWeaponInfo = CSDKWeaponInfo::GetWeaponInfo(eFirst);
if ((m_szCharacter[0] || m_szPreviewCharacter[0]) && pPlayerPreview && !ShouldShowTeams())
{
KeyValues* pValues = new KeyValues("preview");
pValues->LoadFromBuffer("model", szPlayerPreviewTemplate);
const char* pCharacter = m_szCharacter;
if (m_szPreviewCharacter[0])
pCharacter = m_szPreviewCharacter;
pValues->SetString("modelname", VarArgs("models/player/%s.mdl", pCharacter));
if (ShouldShowCharacterOnly() || ShouldShowCharacterAndWeapons())
{
pValues->SetFloat("origin_x", hud_characterpreview_x.GetFloat());
pValues->SetFloat("origin_y", hud_characterpreview_y.GetFloat());
pValues->SetFloat("origin_z", hud_characterpreview_z.GetFloat());
}
else
{
pValues->SetFloat("origin_x", hud_playerpreview_x.GetFloat());
pValues->SetFloat("origin_y", hud_playerpreview_y.GetFloat());
pValues->SetFloat("origin_z", hud_playerpreview_z.GetFloat());
}
if (m_pPage && FStrEq(m_pPage->GetName(), "class") && m_szPreviewSequence[0] && m_szPreviewWeaponModel[0] && !pPlayer->GetLoadoutWeight())
{
KeyValues* pAnimation = pValues->FindKey("animation");
if (pAnimation)
示例5: ipanel
//-----------------------------------------------------------------------------
// Purpose: Sets the focus to the previous panel in the tab order
// Input : *panel - panel currently with focus
//-----------------------------------------------------------------------------
bool FocusNavGroup::RequestFocusPrev(VPANEL panel)
{
if(panel==NULL)
return false;
_currentFocus = NULL;
int newPosition = 9999999;
if (panel)
{
newPosition = ipanel()->GetTabPosition(panel);
}
bool bFound = false;
bool bRepeat = true;
Panel *best = NULL;
while (1)
{
newPosition--;
if (newPosition > 0)
{
int bestPosition = 0;
// look for the next tab position
for (int i = 0; i < _mainPanel->GetChildCount(); i++)
{
Panel *child = _mainPanel->GetChild(i);
if (child && child->IsVisible() && child->IsEnabled() && child->GetTabPosition())
{
int tabPosition = child->GetTabPosition();
if (tabPosition == newPosition)
{
// we've found the right tab
best = child;
bestPosition = newPosition;
// don't loop anymore since we've found the correct panel
break;
}
else if (tabPosition < newPosition && tabPosition > bestPosition)
{
// record the match since this is the closest so far
bestPosition = tabPosition;
best = child;
}
}
}
if (!bRepeat)
break;
if (best)
break;
}
else
{
// reset new position for next loop
newPosition = 9999999;
}
// haven't found an item
if (!_topLevelFocus)
{
// check to see if we should push the focus request up
if (_mainPanel->GetVParent() && _mainPanel->GetVParent() != surface()->GetEmbeddedPanel())
{
// we're not a top level panel, so forward up the request instead of looping
if (ipanel()->RequestFocusPrev(_mainPanel->GetVParent(), _mainPanel->GetVPanel()))
{
bFound = true;
SetCurrentDefaultButton(NULL);
break;
}
}
}
// not found an item, loop back
newPosition = 9999999;
bRepeat = false;
}
if (best)
{
_currentFocus = best->GetVPanel();
best->RequestFocus(-1);
bFound = true;
if (!CanButtonBeDefault(best->GetVPanel()))
{
if (_defaultButton)
{
SetCurrentDefaultButton(_defaultButton);
}
else
{
SetCurrentDefaultButton(NULL);
//.........这里部分代码省略.........
示例6: FixupBackgroundPanels
//-----------------------------------------------------------------------------
// Purpose: Re-aligns background image panels so they are touching.
//-----------------------------------------------------------------------------
static void FixupBackgroundPanels( EditablePanel *pWindow, int offsetX, int offsetY )
{
if ( !pWindow )
return;
int screenWide, screenTall;
pWindow->GetSize( screenWide, screenTall );
int inset = GetAlternateProportionalValueFromNormal( 20 );
int cornerSize = GetAlternateProportionalValueFromNormal( 10 );
int titleHeight = GetAlternateProportionalValueFromNormal( 42 );
int mainHeight = GetAlternateProportionalValueFromNormal( 376 );
int logoSize = titleHeight;
int captionInset = GetAlternateProportionalValueFromNormal( 76 );
Panel *pPanel;
// corners --------------------------------------------
pPanel = pWindow->FindChildByName( "TopLeftPanel" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( offsetX + inset, offsetY + inset, cornerSize, cornerSize );
}
pPanel = pWindow->FindChildByName( "TopRightPanel" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( screenWide - offsetX - inset - cornerSize, offsetY + inset, cornerSize, cornerSize );
}
pPanel = pWindow->FindChildByName( "BottomLeftPanel" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( offsetX + inset, screenTall - offsetY - inset - cornerSize, cornerSize, cornerSize );
}
pPanel = pWindow->FindChildByName( "BottomRightPanel" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( screenWide - offsetX - inset - cornerSize, screenTall - offsetY - inset - cornerSize, cornerSize, cornerSize );
}
// background -----------------------------------------
pPanel = pWindow->FindChildByName( "TopSolid" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( offsetX + inset + cornerSize, offsetY + inset, screenWide - 2*offsetX - 2*inset - 2*cornerSize, cornerSize );
}
pPanel = pWindow->FindChildByName( "UpperMiddleSolid" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( offsetX + inset, offsetY + inset + cornerSize, screenWide - 2*offsetX - 2*inset, titleHeight );
}
pPanel = pWindow->FindChildByName( "LowerMiddleSolid" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( offsetX + inset + cornerSize, screenTall - offsetY - inset - cornerSize, screenWide - 2*offsetX - 2*inset - 2*cornerSize, cornerSize );
}
pPanel = pWindow->FindChildByName( "BottomSolid" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( offsetX + inset, screenTall - offsetY - inset - cornerSize - mainHeight, screenWide - 2*offsetX - 2*inset, mainHeight );
}
// transparent border ---------------------------------
pPanel = pWindow->FindChildByName( "TopClear" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( 0, 0, screenWide, offsetY + inset );
}
pPanel = pWindow->FindChildByName( "BottomClear" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
pPanel->SetBounds( 0, screenTall - offsetY - inset, screenWide, offsetY + inset );
}
pPanel = pWindow->FindChildByName( "LeftClear" );
if ( pPanel )
{
pPanel->SetZPos( -20 );
//.........这里部分代码省略.........
示例7: GetChildAfter
const GuiObjectPtr Panel::GetChildAfter( GuiObjectCPtr _spChild ) const
{
Panel *pThis = const_cast< Panel* >( this );
return pThis->GetChildAfter( _spChild );
}
示例8: GetChildIterator
const ChildIterator Panel::GetChildIterator() const
{
Panel *pThis = const_cast< Panel* >( this );
return pThis->GetChildIterator();
}
示例9: GetChild
const GuiObjectPtr Panel::GetChild( Unsigned32 u32Idx ) const
{
Panel* pThis = const_cast< Panel* >( this );
return pThis->GetChild( u32Idx );
}
示例10: while
void CKeyBindingHelpDialog::PopulateList()
{
m_pList->DeleteAllItems();
int i, j;
CUtlVector< ListInfo_t > maps;
vgui2::Panel *pPanel = m_hPanel;
while ( pPanel->IsKeyBindingChainToParentAllowed() )
{
PanelKeyBindingMap *map = pPanel->GetKBMap();
while ( map )
{
int k;
int c = maps.Count();
for ( k = 0; k < c; ++k )
{
if ( maps[k].m_pMap == map )
break;
}
if ( k == c )
{
int mapIndex = maps.AddToTail( );
maps[mapIndex].m_pMap = map;
maps[mapIndex].m_pPanel = pPanel;
}
map = map->baseMap;
}
pPanel = pPanel->GetParent();
if ( !pPanel )
break;
}
CUtlRBTree< KeyValues *, int > sorted( 0, 0, BindingLessFunc );
// add header item
int c = maps.Count();
for ( i = 0; i < c; ++i )
{
PanelKeyBindingMap *m = maps[ i ].m_pMap;
Panel *pMapPanel = maps[i].m_pPanel;
Assert( m );
int bindings = m->boundkeys.Count();
for ( j = 0; j < bindings; ++j )
{
BoundKey_t *kbMap = &m->boundkeys[ j ];
Assert( kbMap );
// Create a new: blank item
KeyValues *item = new KeyValues( "Item" );
// Fill in data
char loc[ 128 ];
Q_snprintf( loc, sizeof( loc ), "#%s", kbMap->bindingname );
char ansi[ 256 ];
AnsiText( loc, ansi, sizeof( ansi ) );
item->SetString( "Action", ansi );
item->SetWString( "Binding", Panel::KeyCodeModifiersToDisplayString( (KeyCode)kbMap->keycode, kbMap->modifiers ) );
// Find the binding
KeyBindingMap_t *bindingMap = pMapPanel->LookupBinding( kbMap->bindingname );
if ( bindingMap &&
bindingMap->helpstring )
{
AnsiText( bindingMap->helpstring, ansi, sizeof( ansi ) );
item->SetString( "Description", ansi );
}
item->SetPtr( "Item", kbMap );
sorted.Insert( item );
}
// Now try and find any "unbound" keys...
int mappings = m->entries.Count();
for ( j = 0; j < mappings; ++j )
{
KeyBindingMap_t *kbMap = &m->entries[ j ];
// See if it's bound
CUtlVector< BoundKey_t * > list;
pMapPanel->LookupBoundKeys( kbMap->bindingname, list );
if ( list.Count() > 0 )
continue;
// Not bound, add a placeholder entry
// Create a new: blank item
KeyValues *item = new KeyValues( "Item" );
// fill in data
char loc[ 128 ];
Q_snprintf( loc, sizeof( loc ), "#%s", kbMap->bindingname );
char ansi[ 256 ];
AnsiText( loc, ansi, sizeof( ansi ) );
//.........这里部分代码省略.........
示例11: get_constant
ProjectManager::ProjectManager() {
int margin = get_constant("margin","Dialogs");
int button_margin = get_constant("button_margin","Dialogs");
// load settings
if (!EditorSettings::get_singleton())
EditorSettings::create();
set_area_as_parent_rect();
Panel *panel = memnew( Panel );
add_child(panel);
panel->set_area_as_parent_rect();
VBoxContainer *vb = memnew( VBoxContainer );
panel->add_child(vb);
vb->set_area_as_parent_rect(20);
Label *l = memnew( Label );
l->set_text(_MKSTR(VERSION_NAME)" - Project Manager");
l->add_font_override("font",get_font("large","Fonts"));
l->set_align(Label::ALIGN_CENTER);
vb->add_child(l);
l = memnew( Label );
l->set_text("v"VERSION_MKSTRING);
//l->add_font_override("font",get_font("bold","Fonts"));
l->set_align(Label::ALIGN_CENTER);
vb->add_child(l);
vb->add_child(memnew(HSeparator));
vb->add_margin_child("\n",memnew(Control));
HBoxContainer *tree_hb = memnew( HBoxContainer);
vb->add_margin_child("Recent Projects:",tree_hb,true);
PanelContainer *pc = memnew( PanelContainer);
pc->add_style_override("panel",get_stylebox("bg","Tree"));
tree_hb->add_child(pc);
pc->set_h_size_flags(SIZE_EXPAND_FILL);
scroll = memnew( ScrollContainer );
pc->add_child(scroll);
scroll->set_enable_h_scroll(false);
VBoxContainer *tree_vb = memnew( VBoxContainer);
tree_hb->add_child(tree_vb);
scroll_childs = memnew( VBoxContainer );
scroll_childs->set_h_size_flags(SIZE_EXPAND_FILL);
scroll->add_child(scroll_childs);
//HBoxContainer *hb = memnew( HBoxContainer );
//vb->add_child(hb);
Button *open = memnew( Button );
open->set_text("Edit");
tree_vb->add_child(open);
open->connect("pressed", this,"_open_project");
open_btn=open;
Button *run = memnew( Button );
run->set_text("Run");
tree_vb->add_child(run);
run->connect("pressed", this,"_run_project");
run_btn=run;
tree_vb->add_child(memnew( HSeparator ));
Button *scan = memnew( Button );
scan->set_text("Scan");
tree_vb->add_child(scan);
scan->connect("pressed", this,"_scan_projects");
tree_vb->add_child(memnew( HSeparator ));
scan_dir = memnew( FileDialog );
scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM);
scan_dir->set_mode(FileDialog::MODE_OPEN_DIR);
add_child(scan_dir);
scan_dir->connect("dir_selected",this,"_scan_begin");
Button* create = memnew( Button );
create->set_text("New Project");
tree_vb->add_child(create);
create->connect("pressed", this,"_new_project");
Button* import = memnew( Button );
import->set_text("Import");
tree_vb->add_child(import);
import->connect("pressed", this,"_import_project");
Button* erase = memnew( Button );
erase->set_text("Erase");
tree_vb->add_child(erase);
erase->connect("pressed", this,"_erase_project");
erase_btn=erase;
//.........这里部分代码省略.........
示例12: assert
bool Workarea::handleEvent(const SDL_Event & event)
{
gcn::FocusHandler *fh = m_gui->getFocusHandler();
assert(fh != 0);
gcn::Widget *focus = fh->getFocused();
bool clear_focus = false;
bool event_eaten = false;
bool suppress = false;
Panel *panel = dynamic_cast<Panel*>(m_panel);
switch (event.type) {
case SDL_MOUSEMOTION:
// FIXME This should depend on whether the gui is visible.
event_eaten = m_gui->getWidgetAt(event.motion.x, event.motion.y) != m_top;
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
// FIXME This should depend on whether the gui is visible.
event_eaten = m_gui->getWidgetAt(event.button.x, event.button.y) != m_top;
break;
case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_RETURN) {
if (panel != 0 && System::instance()->checkState(SYS_IN_WORLD) &&
(focus == 0 || focus == m_top)) {
suppress = panel->requestConsole();
}
event_eaten = true;
} else if (event.key.keysym.sym == SDLK_SLASH) {
if (panel != 0 && System::instance()->checkState(SYS_IN_WORLD) &&
(focus == 0 || focus == m_top)) {
panel->requestConsole();
}
event_eaten = true;
} else if (event.key.keysym.sym == SDLK_ESCAPE) {
if (panel != 0) {
suppress = panel->dismissConsole();
}
event_eaten = true;
} else {
event_eaten = ((focus != 0) && (focus != m_top));
}
case SDL_KEYUP:
event_eaten = ((focus != 0) && (focus != m_top));
break;
default:
event_eaten = false;
break;
}
if (!suppress) { m_input->pushInput(event); }
if (clear_focus) {
fh->focusNone();
}
focus = fh->getFocused();
if ((focus != 0) && (focus != m_top)) {
if (m_system->isMouselookEnabled()) {
m_system->toggleMouselook();
}
}
return event_eaten;
}
示例13:
void
Shader::OnCommand(wxCommandEvent& evt)
{
Project *project = Project::GetProject();
Panel *panel;
Undoer *undoer;
Graph *graph;
if (project != NULL)
{
panel = project->GetPanel();
if (panel != NULL)
{
undoer = panel->GetUndoerCtrl();
graph = panel->GetGraphCtrl();
}
}
switch (evt.GetId())
{
case wxID_OPEN:
Open();
break;
case wxID_SAVE:
Save();
break;
case wxID_SAVEAS:
SaveAs();
break;
case wxID_EXIT:
Close(false);
break;
case wxID_UNDO:
undoer->Undo();
break;
case wxID_REDO:
undoer->Redo();
break;
case wxID_CUT:
graph->Cut();
break;
case wxID_COPY:
graph->Copy();
break;
case wxID_PASTE:
graph->Paste();
break;
case wxID_DUPLICATE:
graph->Duplicate();
break;
case wxID_GROUP:
graph->GroupNodes();
break;
case wxID_UNGROUP:
graph->UngroupNodes();
break;
case wxID_SAVEGROUP:
graph->SaveGroup();
break;
case wxID_COPYMETAFILE:
graph->CopyAsMetafile();
break;
case wxID_CONFIGURE:
project->Configure();
break;
case wxID_RELOADLIBS:
//project->ReloadLibs();
break;
}
}
示例14: EditorFontImportDialog
EditorFontImportDialog(EditorFontImportPlugin *p_plugin) {
plugin=p_plugin;
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer);
vbc->add_child(hbc);
VBoxContainer *vbl = memnew( VBoxContainer );
hbc->add_child(vbl);
hbc->set_v_size_flags(SIZE_EXPAND_FILL);
vbl->set_h_size_flags(SIZE_EXPAND_FILL);
VBoxContainer *vbr = memnew( VBoxContainer );
hbc->add_child(vbr);
vbr->set_h_size_flags(SIZE_EXPAND_FILL);
source = memnew( LineEditFileChooser );
source->get_file_dialog()->set_access(FileDialog::ACCESS_FILESYSTEM);
source->get_file_dialog()->set_mode(FileDialog::MODE_OPEN_FILE);
source->get_file_dialog()->add_filter("*.ttf;TrueType");
source->get_file_dialog()->add_filter("*.otf;OpenType");
source->get_line_edit()->connect("text_entered",this,"_src_changed");
vbl->add_margin_child("Source Font:",source);
font_size = memnew( SpinBox );
vbl->add_margin_child("Source Font Size:",font_size);
font_size->set_min(3);
font_size->set_max(256);
font_size->set_val(16);
font_size->connect("value_changed",this,"_font_size_changed");
dest = memnew( LineEditFileChooser );
//
List<String> fl;
Ref<Font> font= memnew(Font);
dest->get_file_dialog()->add_filter("*.fnt ; Font" );
//ResourceSaver::get_recognized_extensions(font,&fl);
//for(List<String>::Element *E=fl.front();E;E=E->next()) {
// dest->get_file_dialog()->add_filter("*."+E->get());
//}
vbl->add_margin_child("Dest Resource:",dest);
HBoxContainer *testhb = memnew( HBoxContainer );
test_string = memnew( LineEdit );
test_string->set_text("The quick brown fox jumps over the lazy dog.");
test_string->set_h_size_flags(SIZE_EXPAND_FILL);
test_string->set_stretch_ratio(5);
testhb->add_child(test_string);
test_color = memnew( ColorPickerButton );
test_color->set_color(get_color("font_color","Label"));
test_color->set_h_size_flags(SIZE_EXPAND_FILL);
test_color->set_stretch_ratio(1);
test_color->connect("color_changed",this,"_update_text3");
testhb->add_child(test_color);
vbl->add_spacer();
vbl->add_margin_child("Test: ",testhb);
HBoxContainer *upd_hb = memnew( HBoxContainer );
// vbl->add_child(upd_hb);
upd_hb->add_spacer();
Button *update = memnew( Button);
upd_hb->add_child(update);
update->set_text("Update");
update->connect("pressed",this,"_update");
options = memnew( _EditorFontImportOptions );
prop_edit = memnew( PropertyEditor() );
vbr->add_margin_child("Options:",prop_edit,true);
options->connect("changed",this,"_prop_changed");
prop_edit->hide_top_label();
Panel *panel = memnew( Panel );
vbc->add_child(panel);
test_label = memnew( Label );
test_label->set_autowrap(true);
panel->add_child(test_label);
test_label->set_area_as_parent_rect();
panel->set_v_size_flags(SIZE_EXPAND_FILL);
test_string->connect("text_changed",this,"_update_text2");
set_title("Font Import");
timer = memnew( Timer );
add_child(timer);
timer->connect("timeout",this,"_update");
timer->set_wait_time(0.4);
timer->set_one_shot(true);
get_ok()->connect("pressed", this,"_import");
get_ok()->set_text("Import");
error_dialog = memnew ( ConfirmationDialog );
add_child(error_dialog);
error_dialog->get_ok()->set_text("Accept");
set_hide_on_ok(false);
}
示例15: init
virtual void init() {
SceneMainLoop::init();
#if 0
Viewport *vp = memnew( Viewport );
vp->set_world( Ref<World>( memnew( World )));
get_root()->add_child(vp);
vp->set_rect(Rect2(0,0,256,256));
vp->set_as_render_target(true);
vp->set_render_target_update_mode(Viewport::RENDER_TARGET_UPDATE_ALWAYS);
Camera *camera = memnew( Camera );
vp->add_child(camera);
camera->make_current();
TestCube *testcube = memnew( TestCube );
vp->add_child(testcube);
testcube->set_transform(Transform( Matrix3().rotated(Vector3(0,1,0),Math_PI*0.25), Vector3(0,0,-8)));
Sprite *sp = memnew( Sprite );
sp->set_texture( vp->get_render_target_texture() );
// sp->set_texture( ResourceLoader::load("res://ball.png") );
sp->set_pos(Point2(300,300));
get_root()->add_child(sp);
return;
#endif
Panel * frame = memnew( Panel );
frame->set_anchor( MARGIN_RIGHT, Control::ANCHOR_END );
frame->set_anchor( MARGIN_BOTTOM, Control::ANCHOR_END );
frame->set_end( Point2(0,0) );
get_root()->add_child( frame );
Label *label = memnew( Label );
label->set_pos( Point2( 80,90 ) );
label->set_size( Point2( 170,80 ) );
label->set_align( Label::ALIGN_FILL );
//label->set_text("There");
label->set_text("There was once upon a time a beautiful unicorn that loved to play with little girls...");
frame->add_child(label);
Button *button = memnew( Button );
button->set_pos( Point2( 20,20 ) );
button->set_size( Point2( 1,1 ) );
button->set_text("This is a biggie button");
frame->add_child( button );
#if 0
Sprite *tf = memnew( Sprite );
frame->add_child(tf);
Image img;
ImageLoader::load_image("LarvoClub.png",&img);
img.resize(512,512);
img.generate_mipmaps();
img.compress();
Ref<Texture> text = memnew( Texture );
text->create_from_image(img);
tf->set_texture(text);
tf->set_pos(Point2(50,50));
//tf->set_scale(Point2(0.3,0.3));
return;
#endif
Tree * tree = memnew( Tree );
tree->set_columns(2);
tree->set_pos( Point2( 230,210 ) );
tree->set_size( Point2( 150,250 ) );
TreeItem *item = tree->create_item();
item->set_editable(0,true);
item->set_text(0,"root");
item = tree->create_item( tree->get_root() );
item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
item->set_editable(0,true);
item->set_text(0,"check");
item->set_cell_mode(1, TreeItem::CELL_MODE_CHECK);
item->set_editable(1,true);
item->set_text(1,"check2");
item = tree->create_item( tree->get_root() );
item->set_cell_mode(0, TreeItem::CELL_MODE_RANGE);
//.........这里部分代码省略.........