本文整理汇总了C++中CGuiLayout类的典型用法代码示例。如果您正苦于以下问题:C++ CGuiLayout类的具体用法?C++ CGuiLayout怎么用?C++ CGuiLayout使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CGuiLayout类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Menu_Net_NET_ServerList_Refresher
namespace DeprecatedGUI {
CGuiLayout cInternet;
std::string szNetCurServer;
// Internet widgets
enum {
mi_Join=0,
mi_ServerList,
mi_Refresh,
mi_UpdateList,
mi_AddServer,
mi_Back,
mi_PopupMenu,
mi_PlayerSelection,
};
void Menu_Net_NET_ServerList_Refresher() {
Menu_SvrList_FillList( (CListview *)cInternet.getWidget( mi_ServerList ), SLFT_CustomSettings, SvrListSettingsFilter::Load(tLXOptions->sSvrListSettingsFilterCfg) );
}
///////////////////
// Initialize the Internet menu
bool Menu_Net_NETInitialize()
{
iNetMode = net_internet;
szNetCurServer = "";
cInternet.Shutdown();
cInternet.Initialize();
cInternet.Add( new CListview(), mi_ServerList, 40, 180, 560, 242);
cInternet.Add( new CButton(BUT_BACK, tMenu->bmpButtons), mi_Back, 25, 440, 50, 15);
cInternet.Add( new CButton(BUT_ADD, tMenu->bmpButtons), mi_AddServer, 140,440, 40, 15);
cInternet.Add( new CButton(BUT_REFRESH, tMenu->bmpButtons), mi_Refresh, 250,440, 83, 15);
cInternet.Add( new CButton(BUT_UPDATELIST, tMenu->bmpButtons), mi_UpdateList, 390,440, 125, 15);
cInternet.Add( new CButton(BUT_JOIN, tMenu->bmpButtons), mi_Join, 570,440, 43, 15);
cInternet.Add( new CLabel("Select player:",tLX->clNormalLabel),-1, 125, 152, 180,15);
cInternet.Add( new CCombobox(), mi_PlayerSelection, 225,150, 170, 19);
if( tLXOptions->bEnableChat && tLXOptions->bEnableMiniChat )
cInternet.Add( new CChatWidget(), -1, 25, 15, 585, 85 );
/*
Server list columns
Connection speed
Name
State
Players
Ping
Address
*/
// Add players to the list
profile_t *p = GetProfiles();
bool validName = false;
for(;p;p=p->tNext) {
if(p->iType == PRF_COMPUTER->toInt())
continue;
int i = ((CCombobox*) cInternet.getWidget( mi_PlayerSelection ))->addItem(p->sName, p->sName);
((CCombobox*) cInternet.getWidget( mi_PlayerSelection ))->setImage(p->cSkin.getPreview(), i);
if( p->sName == tLXOptions->sLastSelectedPlayer )
validName=true;
}
if( ! validName )
tLXOptions->sLastSelectedPlayer = GetProfiles()->sName;
((CCombobox*) cInternet.getWidget( mi_PlayerSelection ))->setCurSIndexItem( tLXOptions->sLastSelectedPlayer );
Menu_redrawBufferRect(0, 0, 640, 480);
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "", tLXOptions->iInternetList[0]);
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "Server Name", tLXOptions->iInternetList[1]);
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "State", tLXOptions->iInternetList[2]);
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "Players", tLXOptions->iInternetList[3]);
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "Ping", tLXOptions->iInternetList[4]);
if (tLXOptions->bUseIpToCountry)
{ // Too lazy to update tLXOptions, so I'll calculate last column width from width of listview
//int CountryColumnWidth = 21; // TODO: not used
// HINT: because this column is optional, it is at the end of the array from options
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "Country", tLXOptions->iInternetList[5]);
}
cInternet.SendMessage( mi_ServerList, LVS_ADDCOLUMN, "Address", tLXOptions->iInternetList[6]);
((CListview*) cInternet.getWidget( mi_ServerList ))->SetSortColumn( tLXOptions->iInternetSortColumn, true ); // Sorting
// Load the list
Menu_Net_NET_ServerList_Refresher();
SvrList_UpdateUDPList();
Timer("Menu_Net_NETInitialize serverlist timeout", null, NULL, SVRLIST_TIMEOUT, true).startHeadless();
return true;
//.........这里部分代码省略.........
示例2: Menu_Net_NETAddServer
void Menu_Net_NETAddServer()
{
CGuiLayout cAddSvr;
gui_event_t *ev = NULL;
bool addServerMsg = true;
// Create the background
cInternet.Draw( tMenu->bmpBuffer.get() );
Menu_DrawBox(tMenu->bmpBuffer.get(), 200, 220, 440, 340);
//DrawImageAdv(tMenu->bmpBuffer, tMenu->bmpMainBack, 202,222, 202,222, 237,117);
DrawRectFill(tMenu->bmpBuffer.get(), 202,222,439,339,tLX->clDialogBackground);
for(int i=0;i<6;i++)
cNetButtons[i].Draw(tMenu->bmpBuffer.get());
Menu_RedrawMouse(true);
cAddSvr.Initialize();
cAddSvr.Add( new CButton(BUT_ADD, tMenu->bmpButtons), na_Add, 220, 320, 40,15);
cAddSvr.Add( new CButton(BUT_CANCEL, tMenu->bmpButtons),na_Cancel, 350, 320, 70,15);
cAddSvr.Add( new CLabel("Add a server", tLX->clNormalLabel), -1,275, 225, 0, 0);
cAddSvr.Add( new CLabel("Address", tLX->clNormalLabel), -1,215, 267, 0, 0);
cAddSvr.Add( new CTextbox(), na_Address, 280, 265, 140, tLX->cFont.GetHeight());
ProcessEvents();
while(!WasKeyboardEventHappening(SDLK_ESCAPE,false) && addServerMsg && tMenu->bMenuRunning) {
Menu_RedrawMouse(true);
DrawImageAdv(VideoPostProcessor::videoSurface(),tMenu->bmpBuffer, 200,220, 200,220, 240, 240);
ProcessEvents();
// Process the server list
if( SvrList_Process() ) {
// Add the servers to the listview
Menu_Net_NET_ServerList_Refresher();
}
cAddSvr.Draw( VideoPostProcessor::videoSurface() );
ev = cAddSvr.Process();
// Process any events
if(ev) {
switch(ev->iControlID) {
// Add
case na_Add:
if(ev->iEventMsg == BTN_CLICKED) {
std::string addr;
cAddSvr.SendMessage(na_Address, TXS_GETTEXT, &addr, 0);
SvrList_AddServer(addr, true);
Menu_Net_NET_ServerList_Refresher();
// Click!
PlaySoundSample(sfxGeneral.smpClick);
addServerMsg = false;
}
break;
// Cancel
case na_Cancel:
if(ev->iEventMsg == BTN_CLICKED) {
// Click!
PlaySoundSample(sfxGeneral.smpClick);
addServerMsg = false;
}
break;
}
}
DrawCursor(VideoPostProcessor::videoSurface());
doVideoFrameInMainThread();
CapFPS();
}
cAddSvr.Shutdown();
// Re-draw the background
DrawImage(tMenu->bmpBuffer.get(),tMenu->bmpMainBack_common,0,0);
Menu_DrawSubTitle(tMenu->bmpBuffer.get(),SUB_NETWORK);
if (tMenu->tFrontendInfo.bPageBoxes)
Menu_DrawBox(tMenu->bmpBuffer.get(), 15,130, 625, 465);
Menu_RedrawMouse(true);
}
示例3: Menu_Net_NETShowServer
///////////////////
// Show a server's details
void Menu_Net_NETShowServer(const std::string& szAddress)
{
CGuiLayout cDetails;
// Create the buffer
DrawImage(tMenu->bmpBuffer.get(),tMenu->bmpMainBack_common,0,0);
Menu_DrawBox(tMenu->bmpBuffer.get(), 15,130, 625, 465);
Menu_DrawSubTitle(tMenu->bmpBuffer.get(),SUB_NETWORK);
cInternet.Draw(tMenu->bmpBuffer.get());
//for(ushort i=1;i<4;i++)
// cNetButtons[i].Draw(tMenu->bmpBuffer.get());
Menu_RedrawMouse(true);
int center = VideoPostProcessor::videoSurface()->w/2;
int y = VideoPostProcessor::videoSurface()->h/2 - INFO_H/2;
cDetails.Initialize();
cDetails.Add( new CButton(BUT_REFRESH, tMenu->bmpButtons), nd_Refresh, center - 105, y+INFO_H-20, 85,15);
cDetails.Add( new CButton(BUT_JOIN, tMenu->bmpButtons), nd_Join, center, y+INFO_H-20, 40,45);
cDetails.Add( new CButton(BUT_OK, tMenu->bmpButtons), nd_Ok, center + 60, y+INFO_H-20, 40,15);
((CButton *)cDetails.getWidget(nd_Refresh))->setRedrawMenu(false);
((CButton *)cDetails.getWidget(nd_Ok))->setRedrawMenu(false);
((CButton *)cDetails.getWidget(nd_Join))->setRedrawMenu(false);
bGotDetails = false;
bOldLxBug = false;
nTries = 0;
fStart = AbsTime();
while(!WasKeyboardEventHappening(SDLK_ESCAPE,false) && tMenu->bMenuRunning) {
tLX->currentTime = GetTime();
Menu_RedrawMouse(true);
ProcessEvents();
//DrawImageAdv(VideoPostProcessor::videoSurface(),tMenu->bmpBuffer, 200,220, 200,220, 240, 240);
Menu_SvrList_DrawInfo(szAddress, INFO_W, INFO_H);
cDetails.Draw(VideoPostProcessor::videoSurface());
gui_event_t *ev = NULL;
ev = cDetails.Process();
if(ev) {
// Ok
if(ev->iControlID == nd_Ok && ev->iEventMsg == BTN_CLICKED) {
break;
// Refresh
} else if (ev->iControlID == nd_Refresh && ev->iEventMsg == BTN_CLICKED) {
fStart = AbsTime();
bGotDetails = false;
bOldLxBug = false;
nTries = 0;
} else if (ev->iControlID == nd_Join && ev->iEventMsg == BTN_CLICKED) {
// Save the list
SvrList_Save();
lv_subitem_t *sub = ((CListview *)cInternet.getWidget(mi_ServerList))->getCurSubitem(1);
// Join
if (sub)
Menu_Net_NETJoinServer(szAddress, sub->sText);
break;
}
}
DrawCursor(VideoPostProcessor::videoSurface());
doVideoFrameInMainThread();
CapFPS();
}
cDetails.Shutdown();
// Redraw the background
DrawImage(tMenu->bmpBuffer.get(),tMenu->bmpMainBack_common,0,0);
if (tMenu->tFrontendInfo.bPageBoxes)
Menu_DrawBox(tMenu->bmpBuffer.get(), 15,130, 625, 465);
Menu_DrawSubTitle(tMenu->bmpBuffer.get(),SUB_NETWORK);
Menu_RedrawMouse(true);
}
示例4: Menu_Net_NETShutdown
///////////////////
// Shutdown the internet menu
void Menu_Net_NETShutdown()
{
if (tLXOptions) {
// Save the list
if( iNetMode == net_internet ) {
SvrList_Save();
CListview* l = (CListview *)cInternet.getWidget(mi_ServerList);
if(l) {
// Save the column widths
for (int i=0;i<7;i++)
tLXOptions->iInternetList[i] = l->GetColumnWidth(i);
// Save the sorting column
tLXOptions->iInternetSortColumn = l->GetSortColumn();
}
}
// Save the selected player
GuiListItem::Pt item = ((CCombobox*)cInternet.getWidget(mi_PlayerSelection)) ? ((CCombobox*)cInternet.getWidget(mi_PlayerSelection))->getSelectedItem() : NULL;
if (item.get())
tLXOptions->sLastSelectedPlayer = item->index();
}
cInternet.Shutdown();
}
示例5: Gar_RemovePart
///////////////////
// Remove the part and put it into the spare parts bin
void Gar_RemovePart(void)
{
// Add to the players spare parts
cMainGuy->addPart(tPartChange.cPart);
// Engine part
if(tGarage->iState == GAR_ENGINEPART) {
// If this part is attached to a parent part (block), let the parent part handle it
if(tPartChange.cPart->getParent())
tPartChange.cPart->getParent()->removeAttached(tPartChange.cPart);
else
tPartChange.cCar->removeEnginePart(tPartChange.cPart);
} else {
// Running gear part
if(tGarage->iState == GAR_RUNGPART)
cMainGuy->getCurCar()->removeRunningGearPart(tPartChange.cPart);
}
if( tPartChange.tItem )
tPartChange.tItem->iUsed = false;
// Go up a level
if(tGarage->iState == GAR_ENGINEPART) {
Gar_Part2Engine();
}
if(tGarage->iState == GAR_RUNGPART) {
Gar_Part2RunningG();
}
BASS_SamplePlay(sfxParts.smpRemove);
// Shutdown the dialog box
cPartDlg.Shutdown();
}
示例6: Dnr_Shutdown
///////////////////
// Shutdown the diner
void Dnr_Shutdown(void)
{
cDinerLayout.Shutdown();
cDinerLayout2.Shutdown();
if( psDiner ) {
if( psDiner->pcLocation ) {
psDiner->pcLocation->Shutdown();
delete psDiner->pcLocation;
}
psDiner->cSky.Shutdown();
delete psDiner;
}
psDiner = NULL;
}
示例7: Menu_Net_NETJoinServer
///////////////////
// Join a server
void Menu_Net_NETJoinServer(const std::string& sAddress, const std::string& sName)
{
// Fill in the game structure
CCombobox* combo = (CCombobox *) cInternet.getWidget(mi_PlayerSelection);
const GuiListItem::Pt item = combo->getSelectedItem();
if(!item.get()) {
errors << "no player selected" << endl;
return;
}
tLXOptions->sLastSelectedPlayer = item->index();
if(!JoinServer(sAddress, sName, item->index()))
return;
// Shutdown
cInternet.Shutdown();
iNetMode = net_join;
tMenu->iReturnTo = net_internet;
// Connect to the server
Menu_Net_JoinConnectionInitialize(sAddress);
}
示例8: Gar_SetupPartChange
///////////////////
// Setup a part change
void Gar_SetupPartChange(void)
{
// Initialize the dialog box for the part change
cPartDlg.Initialize();
if( tPartChange.iNutsGoingon )
cPartDlg.Add( new CButton("Add All",-1), 1, 340,255,75, 25 );
else
cPartDlg.Add( new CButton("Remove",-1), 1, 340,255,75, 25 );
cPartDlg.Add( new CButton("Repair",-1), 2, 340,300,75, 25 );
cPartDlg.Add( new CButton("Forget it",btn_forgit), 3, 340,345,120,25 );
cPartDlg.Add( new CDialog("Part Change",dlgs_small), 4, 35, 25, 300,200 );
cPartDlg.moveWidgets(240,-170);
}
示例9: Gar_FinishAddPart
///////////////////
// Finish adding the part
void Gar_FinishAddPart(void)
{
// Go up a level
if(tGarage->iState == GAR_ENGINEPART) {
Gar_Part2Engine();
//cGarTaskb.Remove("engine");
}
if(tGarage->iState == GAR_RUNGPART) {
Gar_Part2RunningG();
}
tPartChange.cPart->setDrawNuts(false);
BASS_SamplePlay(sfxParts.smpRemove);
// Shutdown the dialog box
cPartDlg.Shutdown();
}
示例10: Menu_Net_ChatInitialize
///////////////////
// Initialize the news net menu
bool Menu_Net_ChatInitialize()
{
iNetMode = net_chat;
// Setup the gui layout
cChat.Shutdown();
cChat.Initialize();
cChat.Add( new CButton(BUT_BACK, tMenu->bmpButtons), nc_Back, 25,440, 50,15);
cChat.Add( new CChatWidget(), nc_Chat, 25, 140, 585, 280);
cChat.Add( new CCheckbox(tLXOptions->bEnableChat), nc_EnableChat, 100, 440, 20, 20);
cChat.Add( new CLabel("Enable", tLX->clNormalLabel), -1, 130, 440, 0, 0);
cChat.Add( new CCheckbox(tLXOptions->bEnableMiniChat), nc_EnableMiniChat, 350, 440, 20, 20);
cChat.Add( new CLabel("Mini chat in server list", tLX->clNormalLabel), -1, 380, 440, 0, 0);
cChatGuiInitialized = true;
return true;
}
示例11: Dnr_Start
///////////////////
// Start the diner
bool Dnr_Start(char *szDir)
{
keyboard_t *kb = System_GetKeyboard();
GLfloat one[] = {0.3f,0.3f,0.3f,1};
GLfloat blue[] = {0.3f, 0.3f, 1.0f, 1.0f};
GLfloat pos1[4] = {1,1,1,1};
GLfloat pos2[4] = {1,1,1,1};
GLfloat pos3[4] = {25,-100,50,1};
int i;
if( !Dnr_Load(szDir) )
return false;
for( i=0; i<3; i++ ) {
pos1[i] = psDiner->pcLocation->getScene()->getLight(0).Position.GetIndex(i);
pos2[i] = psDiner->pcLocation->getScene()->getLight(1).Position.GetIndex(i);
}
// Setup the diner for an opponent
psDiner->nOppState = opp_waiting;
psDiner->fOppTimer = tMainSR3.fCurTime + (float)GetRandomInt(2)+2.0f;
sRaceInfo.pcOpponent = NULL;
// HACK: Quickly get the opponent in the diner
//Dnr_RollinOpponent();
//psDiner->pcLocation->SetupCamera( CVec(25,11,-1.4f),100);
//psDiner->pcLocation->setCamPos( CVec(0,0,0) );
// Setup the fog
State_Disable(GL_FOG);
// Setup the lighting
State_Enable(GL_LIGHTING);
State_Enable(GL_LIGHT1);
State_Enable(GL_LIGHT2);
glLightfv(GL_LIGHT0, GL_DIFFUSE, one);
glLightfv(GL_LIGHT1, GL_DIFFUSE, one);
glLightfv(GL_LIGHT2, GL_DIFFUSE, one);
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.00f);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.0f);
glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 1.00f);
glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.0f);
glLightf(GL_LIGHT2, GL_CONSTANT_ATTENUATION, 0.80f);
glLightf(GL_LIGHT2, GL_LINEAR_ATTENUATION, 0.01f);
glMaterialf(GL_FRONT, GL_SHININESS, 25.0);
glMaterialfv(GL_FRONT, GL_SPECULAR, one);
System_ProcessInput();
while(psDiner->bProcessDiner) {
System_ProcessInput();
//
// Processing
//
psDiner->pcLocation->Process();
psDiner->cSky.Simulate(tMainSR3.fDeltaTime);
if( !psDiner->bSpeechBubble ) {
Dnr_ProcessOpponent();
Dnr_ProcessGUI();
}
cMainGuy->processFrame();
//
// 3D Drawing
//
glLightfv(GL_LIGHT0, GL_POSITION, pos1);
glLightfv(GL_LIGHT1, GL_POSITION, pos2);
glLightfv(GL_LIGHT2, GL_POSITION, pos3);
SetupFrame();
// Manually setup the camera
psDiner->pcLocation->getCamera()->LookAt(psDiner->pcLocation->getCamLook());
psDiner->pcLocation->getCamera()->Show();
psDiner->cSky.Render( psDiner->pcLocation->getCamera() );
State_Enable(GL_LIGHTING);
psDiner->pcLocation->Draw(true, true, false);
Dnr_DrawOpponent();
//
// 2D Drawing
//
Render_Begin2D();
// Draw the sidedoor bit
State_Enable(GL_TEXTURE_2D);
State_Disable(GL_LIGHTING);
//.........这里部分代码省略.........
示例12: Menu_Net_NETFrame
///////////////////
// Net Internet frame
void Menu_Net_NETFrame(int mouse)
{
gui_event_t *ev = NULL;
std::string addr;
// Process & Draw the gui
ev = cInternet.Process();
cInternet.Draw( VideoPostProcessor::videoSurface() );
// Process the server list
static bool wasLoadedBefore = false;
if( SvrList_Process() || (tIpToCountryDB->Loaded() && !wasLoadedBefore) ) {
// Add the servers to the listview
Menu_Net_NET_ServerList_Refresher();
wasLoadedBefore = tIpToCountryDB->Loaded();
}
// Process any events
if(ev) {
switch(ev->iControlID) {
// Add Server
case mi_AddServer:
if(ev->iEventMsg == BTN_CLICKED) {
// Click!
PlaySoundSample(sfxGeneral.smpClick);
Menu_Net_NETAddServer();
}
break;
// Back
case mi_Back:
if(ev->iEventMsg == BTN_CLICKED) {
// Shutdown
Menu_Net_NETShutdown();
// Click!
PlaySoundSample(sfxGeneral.smpClick);
// Back to main menu
Menu_MainInitialize();
}
break;
// Refresh
case mi_Refresh:
if(ev->iEventMsg == BTN_CLICKED) {
// Click!
PlaySoundSample(sfxGeneral.smpClick);
// Refresh the currently visible servers
SvrList_RefreshList();
Menu_Net_NET_ServerList_Refresher();
}
break;
// Join
case mi_Join:
if(ev->iEventMsg == BTN_CLICKED) {
addr = "";
int result = cInternet.SendMessage(mi_ServerList, LVS_GETCURSINDEX, &addr, 0);
if(result != -1 && addr != "") {
// Save the list
SvrList_Save();
// Click!
PlaySoundSample(sfxGeneral.smpClick);
lv_subitem_t *sub = ((CListview *)cInternet.getWidget(mi_ServerList))->getCurSubitem(1);
// Join
if (sub)
Menu_Net_NETJoinServer(addr,sub->sText);
return;
}
}
break;
// Serverlist
case mi_ServerList:
// Double click
if(ev->iEventMsg == LV_DOUBLECLK) {
/*
Now.... Should a double click refresh the server (like tribes)?
Or should it join the server like other games???
*/
//.........这里部分代码省略.........
示例13: Dnr_ChallengeOpponent
///////////////////
// Challenge the opponent
void Dnr_ChallengeOpponent(int nLevel, int nType)
{
psDiner->bOppClicked = true;
psDiner->bGoodOffer = false;
// Setup the racing gui
cDinerLayout.Initialize();
// Level 1
// Top level choice
if(nLevel == 0) {
cDinerLayout.Add( new CButton("Drag race",-1), dng_drag, 335,230,0, 0);
cDinerLayout.Add( new CButton("Road race",-1), dng_road, 335,280,0, 0);
cDinerLayout.Add( new CButton("Forget it",-1), dng_cancel, 335,330,0, 0);
cDinerLayout.Add( new CDialog("Race", dlgs_small), dng_dlg, 0, 0, 230,200);
}
// Level 2
// Location
if(nLevel == 1) {
// Drag
if(nType == 0) {
for(int i=0; i<psDiner->nNumDragTracks; i++) {
cDinerLayout.Add(new CButton(psDiner->sDragTracks[i].szName,-1), dng_dragtrk1+i, 335,230+i*5,0, 0);
CButton *b = ((CButton *)cDinerLayout.getWidget(dng_dragtrk1+i));
if(b)
b->setSize(10);
}
cDinerLayout.Add( new CButton("Forget it",-1), dng_cancel, 335,330,0, 0);
cDinerLayout.Add( new CDialog("Race", dlgs_small), dng_dlg, 0, 0, 230,200);
}
}
// Level 3
// Bet
if(nLevel == 2) {
// Drag
if(nType == 0) {
cDinerLayout.Add( new CButton("For kicks",-1), dng_dragkicks, 335,220,0, 0);
cDinerLayout.Add( new CButton("$10",-1), dng_drag10, 335,260,0, 0);
cDinerLayout.Add( new CButton("$50",-1), dng_drag50, 335,300,0, 0);
cDinerLayout.Add( new CButton("Back",-1), dng_dragback, 335,350,0, 0);
cDinerLayout.Add( new CDialog("Race", dlgs_small), dng_dlg, 0, 0, 230,200);
}
}
cDinerLayout.moveWidgets(-270, 180);
}
示例14: Gar_ChangePart
///////////////////
// Change a part
void Gar_ChangePart(void)
{
mouse_t *mouse = System_GetMouse();
// Process an escape
/*if( System_GetKeyboard()->KeyUp[SDLK_ESCAPE] ) {
// Go up a level
if(tGarage->iState == GAR_ENGINEPART) {
Gar_Part2Engine();
}
if(tGarage->iState == GAR_RUNGPART) {
tGarage->iState = GAR_RUNNINGG;
Gar_Part2RunningG();
}
return;
}*/
// Draw the part information
cGarLocation->drawPartInfo(tPartChange.cPart, 1);
// Process the change part dialog box
cPartDlg.Draw();
gui_event_t *ev = cPartDlg.Process();
if( ev ) {
switch(ev->iControlID) {
// Add all / Remove all
case 1:
if( ev->iEventMsg == BUT_CLICKED ) {
if( tPartChange.iNutsGoingon ) {
// Put all the nuts on
tPartChange.cPart->putNutsOn();
Gar_FinishAddPart();
} else {
// Remove all the nuts
Gar_RemovePart();
}
cPartDlg.Shutdown();
return;
}
break;
// Repair
case 2:
if( ev->iEventMsg == BUT_CLICKED ) {
// Parts with more then 50% damage cannot be repaired
if( tPartChange.cPart->getDamage() >= 50 ) {
Gar_InitSpeechBubble("The part is too damaged to be repaired");
return;
}
// Can we afford to repair the part?
if( !cMainGuy->canBuy( tPartChange.cPart->repairCost() ) ) {
Gar_InitSpeechBubble("You ain't got enough cash buddy");
return;
}
// Repair the part
int cost = tPartChange.cPart->repair();
cMainGuy->makePurchase(cost);
}
break;
// Forget it
case 3:
if( ev->iEventMsg == BUT_CLICKED ) {
// If this part is coming off but was cancelled; put all the nuts back on
if( !tPartChange.iNutsGoingon )
tPartChange.cPart->putNutsOn();
else {
// Remove the part
Gar_RemovePart();
}
// Go up a level
if(tGarage->iState == GAR_ENGINEPART) {
Gar_Part2Engine();
}
if(tGarage->iState == GAR_RUNGPART) {
tGarage->iState = GAR_RUNNINGG;
Gar_Part2RunningG();
}
cPartDlg.Shutdown();
return;
}
break;
}
//.........这里部分代码省略.........
示例15: Menu_Net_ChatFrame
///////////////////
// The net news menu frame
void Menu_Net_ChatFrame(int mouse)
{
gui_event_t *ev = NULL;
// Process & Draw the gui
ev = cChat.Process();
cChat.Draw( VideoPostProcessor::videoSurface() );
// Process any events
if(ev) {
switch(ev->iControlID) {
// Back
case nc_Back:
if(ev->iEventMsg == BTN_CLICKED) {
// Click!
PlaySoundSample(sfxGeneral.smpClick);
// Shutdown
Menu_Net_ChatShutdown();
// Back to main menu
Menu_MainInitialize();
}
break;
case nc_EnableChat:
if(ev->iEventMsg == CHK_CHANGED) {
PlaySoundSample(sfxGeneral.smpClick);
tLXOptions->bEnableChat = cChat.SendMessage(nc_EnableChat, CKM_GETCHECK, 1, 1) != 0;
if (!tLXOptions->bEnableChat)
{
((CChatWidget *)cChat.getWidget(nc_Chat))->DisableChat();
ShutdownIRC();
}
else
{
InitializeIRC();
((CChatWidget *)cChat.getWidget(nc_Chat))->EnableChat();
}
}
break;
case nc_EnableMiniChat:
if(ev->iEventMsg == CHK_CHANGED) {
PlaySoundSample(sfxGeneral.smpClick);
tLXOptions->bEnableMiniChat = cChat.SendMessage(nc_EnableMiniChat, CKM_GETCHECK, 1, 1) != 0;
}
break;
}
}
// Draw the mouse
DrawCursor(VideoPostProcessor::videoSurface());
}