From: Anders R. <ma...@us...> - 2004-01-11 15:38:06
|
Update of /cvsroot/planeshift/planeshift/src/client/gui In directory sc8-pr-cvs1:/tmp/cvs-serv29991/src/client/gui Modified Files: pawscharpick.cpp pawsconfigkeys.cpp pawsconfigkeys.h shortcutwindow.cpp shortcutwindow.h Log Message: - Added "Exit planeshift!" button to the Character Pick screen. - Update shortcut commands in the options window with their command names. Index: pawscharpick.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscharpick.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pawscharpick.cpp 11 Jan 2004 08:25:00 -0000 1.5 --- pawscharpick.cpp 11 Jan 2004 15:38:03 -0000 1.6 *************** *** 19,22 **** --- 19,23 ---- #define CHARACTER_ACTION_BUTTON 100 + #define QUIT_BUTTON 200 #define BORDER "charborder" *************** *** 170,173 **** --- 171,179 ---- } + case QUIT_BUTTON: + { + psengine->QuitClient(); + return true; + } } Index: pawsconfigkeys.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsconfigkeys.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pawsconfigkeys.cpp 10 Jan 2004 19:33:44 -0000 1.5 --- pawsconfigkeys.cpp 11 Jan 2004 15:38:03 -0000 1.6 *************** *** 42,46 **** // layout of ConfigKeys window: #define LEFT_MARGIN 40 ! #define COMMAND_WIDTH 90 #define TRIGGER_WIDTH 150 #define COLUMN_SPACING 30 --- 42,46 ---- // layout of ConfigKeys window: #define LEFT_MARGIN 40 ! #define COMMAND_WIDTH 100 #define TRIGGER_WIDTH 150 #define COLUMN_SPACING 30 *************** *** 96,99 **** --- 96,101 ---- { object_reg = _object_reg; + + SetName("ConfigKeys"); if ( ! CreateTree()) *************** *** 134,137 **** --- 136,140 ---- pawsSeqTreeNode * rootAsSeq; pawsTreeNode * child; + pawsTextBox * label; pawsTextBox * keyLabel; *************** *** 139,144 **** if (rootAsSeq != NULL) { keyLabel = dynamic_cast<pawsTextBox*> (rootAsSeq->GetSeqWidget(1)); ! CS_ASSERT(keyLabel); psCharControlManager* manager = psengine->GetCharControl(); --- 142,148 ---- if (rootAsSeq != NULL) { + label = dynamic_cast<pawsTextBox*> (rootAsSeq->GetSeqWidget(0)); keyLabel = dynamic_cast<pawsTextBox*> (rootAsSeq->GetSeqWidget(1)); ! CS_ASSERT(label && keyLabel); psCharControlManager* manager = psengine->GetCharControl(); *************** *** 155,158 **** --- 159,166 ---- else keyLabel->SetText( NO_BIND ); + + // Update the name label + csString name = manager->GetActionNick( subtreeRoot->GetName() ); + label->SetText( name ); } *************** *** 178,182 **** label = new pawsTextBox(windowManager); label->SetSize(COMMAND_WIDTH, 20); - label->SetText(subtreeRoot->GetName()); label->SetColour(0xffffff); label->Show(); --- 186,189 ---- *************** *** 213,216 **** --- 220,257 ---- } + void pawsConfigKeys::UpdateNicks(pawsTreeNode * subtreeRoot) + { + if (subtreeRoot == NULL) + subtreeRoot = tree->GetRoot(); + + if (subtreeRoot == NULL) return; + + pawsSeqTreeNode * rootAsSeq; + pawsTreeNode * child; + pawsTextBox * label; + + rootAsSeq = dynamic_cast<pawsSeqTreeNode*> (subtreeRoot); + if (rootAsSeq != NULL) + { + label = dynamic_cast<pawsTextBox*> (rootAsSeq->GetSeqWidget(0)); + CS_ASSERT(label); + + psCharControlManager* manager = psengine->GetCharControl(); + + // Update the name label + csString name = manager->GetActionNick( subtreeRoot->GetName() ); + label->SetText( name ); + } + + + child = subtreeRoot->GetFirstChild(); + while (child != NULL) + { + UpdateNicks(child); + child = child->GetNextSibling(); + } + } + + bool pawsConfigKeys::FindFingeringWindow() { *************** *** 409,421 **** } ! // If the key isn't escape, return it ! if (keyCode != 27) ! { ! csKeyEventHelper::GetEventData( psengine->GetLastEvent(), trigger ); ! notify->OnButtonPressed(FINGERING_TRIGGER_SET, modifiers, this); ! } ! // .... otherwise just quit ! else ! notify->OnButtonPressed(FINGERING_CANCEL_BUTTON, modifiers, this); return true; --- 450,455 ---- } ! csKeyEventHelper::GetEventData( psengine->GetLastEvent(), trigger ); ! notify->OnButtonPressed(FINGERING_TRIGGER_SET, modifiers, this); return true; Index: pawsconfigkeys.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsconfigkeys.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** pawsconfigkeys.h 10 Jan 2004 19:33:44 -0000 1.3 --- pawsconfigkeys.h 11 Jan 2004 15:38:03 -0000 1.4 *************** *** 54,57 **** --- 54,59 ---- virtual void SetDefault() { return; } + void UpdateNicks(pawsTreeNode * subtreeRoot = NULL); + /// from pawsWidget: virtual bool OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ); Index: shortcutwindow.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/shortcutwindow.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** shortcutwindow.cpp 11 Jan 2004 00:45:05 -0000 1.4 --- shortcutwindow.cpp 11 Jan 2004 15:38:03 -0000 1.5 *************** *** 34,37 **** --- 34,38 ---- #include "shortcutwindow.h" #include "paws/pawscrollbar.h" + #include "gui/pawsconfigkeys.h" *************** *** 85,88 **** --- 86,90 ---- return true; } + bool pawsShortcutWindow::OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ) { *************** *** 103,106 **** --- 105,120 ---- windowManager->SetCurrentFocusedWidget(this); subWidget->Hide(); + + pawsWidget * configKeyAsWidget = windowManager->FindWidget("ConfigKeys"); + if (!configKeyAsWidget) + printf("Did not find config key widget\n"); + + pawsConfigKeys * configKey = dynamic_cast<pawsConfigKeys*> + (configKeyAsWidget); + if (configKey) + configKey->UpdateNicks(); + else + printf("Widget isn't a pawsConfigKeys\n"); + } else if (!strcmp(widget->GetName(),"CancelButton")) *************** *** 295,297 **** --- 309,333 ---- } + } + + const csString& pawsShortcutWindow::GetCommandName(int shortcutNum, bool local) + { + if (local) + { + shortcutNum = shortcutNum + 10*currentSet; + } + + if (shortcutNum < 0 || shortcutNum > MAX_SHORTCUT_SETS*10) + { + static csString error("Out of range"); + return error; + } + + if (!name[shortcutNum]) + { + static csString unused("Unused"); + return unused; + } + + return name[shortcutNum]; } Index: shortcutwindow.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/shortcutwindow.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** shortcutwindow.h 10 Jan 2004 19:33:44 -0000 1.2 --- shortcutwindow.h 11 Jan 2004 15:38:03 -0000 1.3 *************** *** 47,51 **** --- 47,58 ---- bool OnScroll( int direction, pawsScrollBar* widget ); + /** + * Execute a short cut script. + * @param shortcutNum is the button number if local = true + * else it is the command in range from + * 0 to MAX_SHORTCUT_SETS*10-1; + */ void ExecuteCommand(int shortcutNum, bool local); + const csString& GetCommandName(int shortcutNum, bool local); protected: |