From: <wel...@us...> - 2011-02-16 13:42:12
|
Revision: 6962 http://planeshift.svn.sourceforge.net/planeshift/?rev=6962&view=rev Author: weltall2 Date: 2011-02-16 13:42:06 +0000 (Wed, 16 Feb 2011) Log Message: ----------- fixed confirmation boxes in gmgui Modified Paths: -------------- trunk/src/client/gui/pawsgmgui.cpp trunk/src/client/gui/pawsgmgui.h Modified: trunk/src/client/gui/pawsgmgui.cpp =================================================================== --- trunk/src/client/gui/pawsgmgui.cpp 2011-02-15 23:44:40 UTC (rev 6961) +++ trunk/src/client/gui/pawsgmgui.cpp 2011-02-16 13:42:06 UTC (rev 6962) @@ -254,7 +254,7 @@ } } -bool pawsGmGUIWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +bool pawsGmGUIWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { const char* errorMessage; csString cmd; Modified: trunk/src/client/gui/pawsgmgui.h =================================================================== --- trunk/src/client/gui/pawsgmgui.h 2011-02-15 23:44:40 UTC (rev 6961) +++ trunk/src/client/gui/pawsgmgui.h 2011-02-16 13:42:06 UTC (rev 6962) @@ -64,7 +64,7 @@ void ShowWidget(const char* name); /// Handle button clicks - bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* reporter); + bool OnButtonReleased(int mouseButton, int keyModifier, pawsWidget* reporter); const char* GetSelectedName(); const char* GetSelectedSector(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-20 22:24:29
|
Revision: 6981 http://planeshift.svn.sourceforge.net/planeshift/?rev=6981&view=rev Author: weltall2 Date: 2011-02-20 22:24:22 +0000 (Sun, 20 Feb 2011) Log Message: ----------- fixed yes no window Modified Paths: -------------- trunk/src/client/gui/pawssummary.cpp trunk/src/client/gui/pawssummary.h Modified: trunk/src/client/gui/pawssummary.cpp =================================================================== --- trunk/src/client/gui/pawssummary.cpp 2011-02-20 20:39:03 UTC (rev 6980) +++ trunk/src/client/gui/pawssummary.cpp 2011-02-20 22:24:22 UTC (rev 6981) @@ -260,7 +260,7 @@ CheckLoadStatus(); } -bool pawsSummaryWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +bool pawsSummaryWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { if(!widget) return false; Modified: trunk/src/client/gui/pawssummary.h =================================================================== --- trunk/src/client/gui/pawssummary.h 2011-02-20 20:39:03 UTC (rev 6980) +++ trunk/src/client/gui/pawssummary.h 2011-02-20 22:24:22 UTC (rev 6981) @@ -32,7 +32,7 @@ public: pawsSummaryWindow(); ~pawsSummaryWindow(); - bool OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ); + bool OnButtonReleased( int mouseButton, int keyModifier, pawsWidget* widget ); void Update(); bool PostSetup(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-20 22:25:54
|
Revision: 6982 http://planeshift.svn.sourceforge.net/planeshift/?rev=6982&view=rev Author: weltall2 Date: 2011-02-20 22:25:48 +0000 (Sun, 20 Feb 2011) Log Message: ----------- fixed yes no box Modified Paths: -------------- trunk/src/client/gui/pawspath.cpp trunk/src/client/gui/pawspath.h Modified: trunk/src/client/gui/pawspath.cpp =================================================================== --- trunk/src/client/gui/pawspath.cpp 2011-02-20 22:24:22 UTC (rev 6981) +++ trunk/src/client/gui/pawspath.cpp 2011-02-20 22:25:48 UTC (rev 6982) @@ -61,7 +61,7 @@ return true; } -bool pawsPathWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +bool pawsPathWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { int id = widget->GetID(); if (id <= PATH_0 + 6 && id > PATH_0) Modified: trunk/src/client/gui/pawspath.h =================================================================== --- trunk/src/client/gui/pawspath.h 2011-02-20 22:24:22 UTC (rev 6981) +++ trunk/src/client/gui/pawspath.h 2011-02-20 22:25:48 UTC (rev 6982) @@ -28,7 +28,7 @@ public: pawsPathWindow(); ~pawsPathWindow(); - bool OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ); + bool OnButtonReleased( int mouseButton, int keyModifier, pawsWidget* widget ); bool PostSetup(); private: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-24 09:01:46
|
Revision: 6986 http://planeshift.svn.sourceforge.net/planeshift/?rev=6986&view=rev Author: weltall2 Date: 2011-02-24 09:01:40 +0000 (Thu, 24 Feb 2011) Log Message: ----------- fixed yes/no dialog when discarding quests Modified Paths: -------------- trunk/src/client/gui/pawsquestwindow.cpp trunk/src/client/gui/pawsquestwindow.h Modified: trunk/src/client/gui/pawsquestwindow.cpp =================================================================== --- trunk/src/client/gui/pawsquestwindow.cpp 2011-02-24 09:01:03 UTC (rev 6985) +++ trunk/src/client/gui/pawsquestwindow.cpp 2011-02-24 09:01:40 UTC (rev 6986) @@ -300,7 +300,7 @@ } } -bool pawsQuestListWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +bool pawsQuestListWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { // We know that the calling widget is a button. int button = widget->GetID(); Modified: trunk/src/client/gui/pawsquestwindow.h =================================================================== --- trunk/src/client/gui/pawsquestwindow.h 2011-02-24 09:01:03 UTC (rev 6985) +++ trunk/src/client/gui/pawsquestwindow.h 2011-02-24 09:01:40 UTC (rev 6986) @@ -84,7 +84,7 @@ bool PostSetup(); /// Handle button clicks - bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* reporter); + bool OnButtonReleased(int mouseButton, int keyModifier, pawsWidget* reporter); void OnListAction( pawsListBox* selected, int status ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-25 20:53:42
|
Revision: 6991 http://planeshift.svn.sourceforge.net/planeshift/?rev=6991&view=rev Author: weltall2 Date: 2011-02-25 20:53:35 +0000 (Fri, 25 Feb 2011) Log Message: ----------- fixed PS#4996 - Guild GUI functionality for leaving bugged Modified Paths: -------------- trunk/src/client/gui/pawsguildwindow.cpp trunk/src/client/gui/pawsguildwindow.h Modified: trunk/src/client/gui/pawsguildwindow.cpp =================================================================== --- trunk/src/client/gui/pawsguildwindow.cpp 2011-02-24 20:32:11 UTC (rev 6990) +++ trunk/src/client/gui/pawsguildwindow.cpp 2011-02-25 20:53:35 UTC (rev 6991) @@ -635,11 +635,11 @@ } } -bool pawsGuildWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +bool pawsGuildWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { guildMemberInfo * member; - Notify3(LOG_ANY,"Widget %s(%d) pressed",widget->GetName(),widget->GetID()); + Notify3(LOG_ANY,"Widget %s(%d) released",widget->GetName(),widget->GetID()); int row,col; if (levelList->ConvertFromAutoID(widget->GetID(),row,col)) Modified: trunk/src/client/gui/pawsguildwindow.h =================================================================== --- trunk/src/client/gui/pawsguildwindow.h 2011-02-24 20:32:11 UTC (rev 6990) +++ trunk/src/client/gui/pawsguildwindow.h 2011-02-25 20:53:35 UTC (rev 6991) @@ -48,7 +48,7 @@ virtual ~pawsGuildWindow(); virtual bool PostSetup(); - virtual bool OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ); + virtual bool OnButtonReleased( int mouseButton, int keyModifier, pawsWidget* widget ); virtual void Show(); virtual void Hide(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-26 23:45:15
|
Revision: 7002 http://planeshift.svn.sourceforge.net/planeshift/?rev=7002&view=rev Author: weltall2 Date: 2011-02-26 23:45:09 +0000 (Sat, 26 Feb 2011) Log Message: ----------- fixed PS#5017 - Can't delete characters. Modified Paths: -------------- trunk/src/client/gui/pawscharpick.cpp trunk/src/client/gui/pawscharpick.h Modified: trunk/src/client/gui/pawscharpick.cpp =================================================================== --- trunk/src/client/gui/pawscharpick.cpp 2011-02-26 20:36:45 UTC (rev 7001) +++ trunk/src/client/gui/pawscharpick.cpp 2011-02-26 23:45:09 UTC (rev 7002) @@ -224,7 +224,7 @@ } } -bool pawsCharacterPickerWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifer*/, pawsWidget* widget) +bool pawsCharacterPickerWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifer*/, pawsWidget* widget) { if(!widget) return false; Modified: trunk/src/client/gui/pawscharpick.h =================================================================== --- trunk/src/client/gui/pawscharpick.h 2011-02-26 20:36:45 UTC (rev 7001) +++ trunk/src/client/gui/pawscharpick.h 2011-02-26 23:45:09 UTC (rev 7002) @@ -36,7 +36,7 @@ bool PostSetup(); void HandleMessage( MsgEntry* me ); - bool OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ); + bool OnButtonReleased(int mouseButton, int keyModifier, pawsWidget* widget); void Show(); void SelectCharacter(int character, pawsWidget* widget); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-03-01 21:28:43
|
Revision: 7025 http://planeshift.svn.sourceforge.net/planeshift/?rev=7025&view=rev Author: weltall2 Date: 2011-03-01 21:28:36 +0000 (Tue, 01 Mar 2011) Log Message: ----------- fixed enter support Modified Paths: -------------- trunk/src/client/gui/pawscharpick.cpp trunk/src/client/gui/pawscharpick.h Modified: trunk/src/client/gui/pawscharpick.cpp =================================================================== --- trunk/src/client/gui/pawscharpick.cpp 2011-02-28 22:33:18 UTC (rev 7024) +++ trunk/src/client/gui/pawscharpick.cpp 2011-03-01 21:28:36 UTC (rev 7025) @@ -250,7 +250,40 @@ { return true; } + case CONFIRM_YES: + { + //Delete the selected character + csString name; + name.Format("SelectCharacter%i", selectedCharacter); + // Get Full name. + psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); + psString charFirstName; + charFullName.GetWord( 0, charFirstName ); + + psCharDeleteMessage msg(charFirstName, 0); + msg.SendMessage(); + + return true; + } + + case CONFIRM_NO: + { + PawsManager::GetSingleton().SetModalWidget(NULL); + widget->GetParent()->Hide(); + return true; + } + } + return false; +} + +bool pawsCharacterPickerWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifer*/, pawsWidget* widget) +{ + if(!widget) + return false; + + switch ( widget->GetID() ) + { case CHARACTER_DELETE_BUTTON: { csString name; @@ -280,30 +313,6 @@ return true; } - case CONFIRM_YES: - { - //Delete the selected character - csString name; - name.Format("SelectCharacter%i", selectedCharacter); - - // Get Full name. - psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); - psString charFirstName; - charFullName.GetWord( 0, charFirstName ); - - psCharDeleteMessage msg(charFirstName, 0); - msg.SendMessage(); - - return true; - } - - case CONFIRM_NO: - { - PawsManager::GetSingleton().SetModalWidget(NULL); - widget->GetParent()->Hide(); - return true; - } - case CHARACTER_BUTTON_0: case CHARACTER_BUTTON_1: case CHARACTER_BUTTON_2: Modified: trunk/src/client/gui/pawscharpick.h =================================================================== --- trunk/src/client/gui/pawscharpick.h 2011-02-28 22:33:18 UTC (rev 7024) +++ trunk/src/client/gui/pawscharpick.h 2011-03-01 21:28:36 UTC (rev 7025) @@ -36,6 +36,7 @@ bool PostSetup(); void HandleMessage( MsgEntry* me ); + bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* widget); bool OnButtonReleased(int mouseButton, int keyModifier, pawsWidget* widget); void Show(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-03-05 11:08:31
|
Revision: 7036 http://planeshift.svn.sourceforge.net/planeshift/?rev=7036&view=rev Author: weltall2 Date: 2011-03-05 11:08:25 +0000 (Sat, 05 Mar 2011) Log Message: ----------- fixed sorting of petition windows patch by neeno Modified Paths: -------------- trunk/src/client/gui/pawspetitiongmwindow.cpp trunk/src/client/gui/pawspetitionwindow.cpp Modified: trunk/src/client/gui/pawspetitiongmwindow.cpp =================================================================== --- trunk/src/client/gui/pawspetitiongmwindow.cpp 2011-03-05 11:02:08 UTC (rev 7035) +++ trunk/src/client/gui/pawspetitiongmwindow.cpp 2011-03-05 11:08:25 UTC (rev 7036) @@ -85,6 +85,14 @@ QueryServer(); //Query the server for messages } + petitionList->SetSortingFunc(0, textBoxSortFunc); + petitionList->SetSortingFunc(1, textBoxSortFunc); + petitionList->SetSortingFunc(2, textBoxSortFunc); + petitionList->SetSortingFunc(3, textBoxSortFunc); + petitionList->SetSortingFunc(4, textBoxSortFunc); + petitionList->SetSortingFunc(5, textBoxSortFunc); + petitionList->SetSortingFunc(6, textBoxSortFunc); + return true; } @@ -323,6 +331,7 @@ // Update the listbox: int tempCount = petCount; AddPetitions(message.petitions); + petitionList->SortRows(); ///sort the column specified in xml //alert GM that there are petitions waiting if (tempCount == -1) Modified: trunk/src/client/gui/pawspetitionwindow.cpp =================================================================== --- trunk/src/client/gui/pawspetitionwindow.cpp 2011-03-05 11:02:08 UTC (rev 7035) +++ trunk/src/client/gui/pawspetitionwindow.cpp 2011-03-05 11:08:25 UTC (rev 7036) @@ -74,6 +74,11 @@ hasPetInterest = false; + petitionList->SetSortingFunc(0, textBoxSortFunc); + petitionList->SetSortingFunc(1, textBoxSortFunc); + petitionList->SetSortingFunc(2, textBoxSortFunc); + petitionList->SetSortingFunc(3, textBoxSortFunc); + return true; } @@ -166,6 +171,7 @@ // Update the listbox: AddPetitions(message.petitions); + petitionList->SortRows(); ///sort the column specified in xml } void pawsPetitionWindow::Close() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rly...@us...> - 2011-03-07 16:07:03
|
Revision: 7060 http://planeshift.svn.sourceforge.net/planeshift/?rev=7060&view=rev Author: rlydontknow Date: 2011-03-07 16:06:57 +0000 (Mon, 07 Mar 2011) Log Message: ----------- fixed doll views not being completely loaded at char creation and in summary screen Modified Paths: -------------- trunk/src/client/gui/pawscharcreatemain.cpp trunk/src/client/gui/pawssummary.cpp Modified: trunk/src/client/gui/pawscharcreatemain.cpp =================================================================== --- trunk/src/client/gui/pawscharcreatemain.cpp 2011-03-07 15:43:16 UTC (rev 7059) +++ trunk/src/client/gui/pawscharcreatemain.cpp 2011-03-07 16:06:57 UTC (rev 7060) @@ -129,6 +129,10 @@ view = (pawsObjectView*)FindWidget("ModelView"); + while(!view->ContinueLoad()) + { + csSleep(100); + } faceLabel = (pawsTextBox*)FindWidget( "Face" ); hairStyleLabel = (pawsTextBox*)FindWidget( "HairStyles" ); Modified: trunk/src/client/gui/pawssummary.cpp =================================================================== --- trunk/src/client/gui/pawssummary.cpp 2011-03-07 15:43:16 UTC (rev 7059) +++ trunk/src/client/gui/pawssummary.cpp 2011-03-07 16:06:57 UTC (rev 7060) @@ -65,6 +65,10 @@ view = (pawsObjectView*)FindWidget("ModelView"); if ( view == NULL ) return false; + while(!view->ContinueLoad()) + { + csSleep(100); + } return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-03-17 06:15:55
|
Revision: 7086 http://planeshift.svn.sourceforge.net/planeshift/?rev=7086&view=rev Author: weltall2 Date: 2011-03-17 06:15:49 +0000 (Thu, 17 Mar 2011) Log Message: ----------- fixed PS#5090 - Cant change guild rank permisions Modified Paths: -------------- trunk/src/client/gui/pawsguildwindow.cpp trunk/src/client/gui/pawsguildwindow.h Modified: trunk/src/client/gui/pawsguildwindow.cpp =================================================================== --- trunk/src/client/gui/pawsguildwindow.cpp 2011-03-17 05:52:56 UTC (rev 7085) +++ trunk/src/client/gui/pawsguildwindow.cpp 2011-03-17 06:15:49 UTC (rev 7086) @@ -635,12 +635,8 @@ } } -bool pawsGuildWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +bool pawsGuildWindow::OnButtonPressed(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { - guildMemberInfo * member; - - Notify3(LOG_ANY,"Widget %s(%d) released",widget->GetName(),widget->GetID()); - int row,col; if (levelList->ConvertFromAutoID(widget->GetID(),row,col)) { @@ -662,7 +658,15 @@ } return true; } + return false; +} +bool pawsGuildWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) +{ + guildMemberInfo * member; + + Notify3(LOG_ANY,"Widget %s(%d) released",widget->GetName(),widget->GetID()); + // If the user clicked on clickable level titles in level listbox, then ask for new level title if (widget->GetID()>=LEVEL_NAME_BUTTON && widget->GetID()<LEVEL_NAME_BUTTON+MAX_GUILD_LEVEL) { Modified: trunk/src/client/gui/pawsguildwindow.h =================================================================== --- trunk/src/client/gui/pawsguildwindow.h 2011-03-17 05:52:56 UTC (rev 7085) +++ trunk/src/client/gui/pawsguildwindow.h 2011-03-17 06:15:49 UTC (rev 7086) @@ -48,6 +48,8 @@ virtual ~pawsGuildWindow(); virtual bool PostSetup(); + ///Handles when a button is pressed + virtual bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* widget); virtual bool OnButtonReleased( int mouseButton, int keyModifier, pawsWidget* widget ); virtual void Show(); virtual void Hide(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-07-26 15:23:50
|
Revision: 7547 http://planeshift.svn.sourceforge.net/planeshift/?rev=7547&view=rev Author: weltall2 Date: 2011-07-26 15:01:21 +0000 (Tue, 26 Jul 2011) Log Message: ----------- fixed broken action location filler Modified Paths: -------------- trunk/src/client/gui/pawsgmgui.cpp trunk/src/client/gui/pawsgmgui.h Modified: trunk/src/client/gui/pawsgmgui.cpp =================================================================== --- trunk/src/client/gui/pawsgmgui.cpp 2011-07-26 11:36:28 UTC (rev 7546) +++ trunk/src/client/gui/pawsgmgui.cpp 2011-07-26 15:01:21 UTC (rev 7547) @@ -42,6 +42,7 @@ #include "paws/pawstextbox.h" #include "paws/pawscheckbox.h" #include "paws/pawsyesnobox.h" +#include "paws/pawstabwindow.h" #include "pawsgmgui.h" #include "paws/pawscrollbar.h" #include "pscamera.h" @@ -128,8 +129,6 @@ QueryServer(); - currentTab = 0; - // get a handle on the widgets in our Attributes tab cbInvincible = (pawsCheckBox*)FindWidget("toggleInvincible"); cbInvisible = (pawsCheckBox*)FindWidget("toggleInvisible"); @@ -254,6 +253,12 @@ } } +int pawsGmGUIWindow::GetCurrentTab() +{ + pawsTabWindow *tabs = dynamic_cast<pawsTabWindow*>(FindWidget("GM Tabs")); + return tabs ? tabs->GetActiveTab()->GetID()-1100 : 0; +} + bool pawsGmGUIWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifier*/, pawsWidget* widget) { const char* errorMessage; @@ -273,8 +278,6 @@ case 1000: // Players tab case 1002: // Action Tab case 1003: // Attributes Tab - //SelectTab(widget->GetID()); - currentTab = widget->GetID() - 1000; break; ////////////////////////////////////////// Modified: trunk/src/client/gui/pawsgmgui.h =================================================================== --- trunk/src/client/gui/pawsgmgui.h 2011-07-26 11:36:28 UTC (rev 7546) +++ trunk/src/client/gui/pawsgmgui.h 2011-07-26 15:01:21 UTC (rev 7547) @@ -74,7 +74,11 @@ void OnStringEntered(const char *name,int param,const char *value); - int GetCurrentTab() { return currentTab; }; + /** + * Returns the currently selected tab in this window. + * @return the id of the selected tab (0 players, 1 action locations, 2 gm options + */ + int GetCurrentTab(); protected: pawsChatWindow* chatWindow; @@ -109,7 +113,6 @@ pawsCheckBox* cbAttackable; pawsCheckBox* cbBuddyHide; - int currentTab; csString cmdToExectute; csString actionXML; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-07-27 17:43:03
|
Revision: 7560 http://planeshift.svn.sourceforge.net/planeshift/?rev=7560&view=rev Author: weltall2 Date: 2011-07-27 17:42:57 +0000 (Wed, 27 Jul 2011) Log Message: ----------- added other missing files from the previous patch Added Paths: ----------- trunk/src/client/gui/pawsconfigspellchecker.cpp trunk/src/client/gui/pawsconfigspellchecker.h Added: trunk/src/client/gui/pawsconfigspellchecker.cpp =================================================================== --- trunk/src/client/gui/pawsconfigspellchecker.cpp (rev 0) +++ trunk/src/client/gui/pawsconfigspellchecker.cpp 2011-07-27 17:42:57 UTC (rev 7560) @@ -0,0 +1,237 @@ +/* + * pawsconfigspellchecker.cpp.cpp - Author: Fabian Stock (Aiw...@go...) + * + * Copyright (C) 2001-2011 Atomic Blue (in...@pl..., http://www.atomicblue.org) + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation (version 2 of the License) + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +//CS INCLUDES +#include <psconfig.h> +#include <iutil/plugin.h> + +//PAWS INCLUDES +#include "pawsconfigspellchecker.h" +#include "paws/pawsmanager.h" +#include "paws/pawstextbox.h" + + +//CLIENT INCLUDES +#include "../globals.h" +#include "gui/chatwindow.h" + +pawsConfigSpellChecker::pawsConfigSpellChecker() +{ + personalDictBox = NULL; + enabled = NULL; + colorR = NULL; + colorG = NULL; + colorB = NULL; +} + +bool pawsConfigSpellChecker::PostSetup() +{ + // setup the widget. Needed in the xml file is one MultiLine Edit Box for the words,a checkbox to enable/disable the spellchecker + // and three EditTextBoxes for the color components of Typos + chatWindow = dynamic_cast<pawsChatWindow*>(PawsManager::GetSingleton().FindWidget("ChatWindow")); + if(!chatWindow) + { + Error1("Couldn't find ChatWindow!"); + return false; + } + personalDictBox = dynamic_cast<pawsMultilineEditTextBox*>(FindWidget("PersonalDictionaryBox")); + if (!personalDictBox) { + Error1("Could not locate PersonalDictionaryBox widget!"); + return false; + } + enabled = dynamic_cast<pawsCheckBox*>(FindWidget("enabled")); + if (!enabled) { + Error1("Could not locate enabled widget!"); + return false; + } + colorR = dynamic_cast<pawsEditTextBox*>(FindWidget("typoColorR")); + if (!colorR) { + Error1("Could not locate typoColorR widget!"); + return false; + } + colorG = dynamic_cast<pawsEditTextBox*>(FindWidget("typoColorG")); + if (!colorG) { + Error1("Could not locate typoColorG widget!"); + return false; + } + colorB = dynamic_cast<pawsEditTextBox*>(FindWidget("typoColorB")); + if (!colorB) { + Error1("Could not locate typoColorB widget!"); + return false; + } + + csRef<iSpellChecker> spellChecker = csQueryRegistryOrLoad<iSpellChecker>(PawsManager::GetSingleton().GetObjectRegistry(), "crystalspace.planeshift.spellchecker"); + + if (spellChecker) + { + // if no dictionaires are loaded hide the config widgets and show an error message + if (!spellChecker->hasDicts()) + { + personalDictBox->Hide(); + enabled->Hide(); + colorR->Hide(); + colorG->Hide(); + colorB->Hide(); + pawsTextBox* personalDictionaryLabel = 0; + personalDictionaryLabel = dynamic_cast<pawsTextBox*>(FindWidget("PersonalDictionaryLabel")); + if (personalDictionaryLabel) personalDictionaryLabel->Hide(); + pawsTextBox* typoColorLabel = 0; + typoColorLabel = dynamic_cast<pawsTextBox*>(FindWidget("typoColorLabel")); + if (typoColorLabel) typoColorLabel->Hide(); + pawsTextBox* errorLabel1 = 0; + errorLabel1 = dynamic_cast<pawsTextBox*>(FindWidget("ErrorLabel1")); + if (errorLabel1) errorLabel1->Show(); + pawsTextBox* errorLabel2 = 0; + errorLabel2 = dynamic_cast<pawsTextBox*>(FindWidget("ErrorLabel2")); + if (errorLabel2) errorLabel2->Show(); + pawsTextBox* errorLabel3 = 0; + errorLabel3= dynamic_cast<pawsTextBox*>(FindWidget("ErrorLabel3")); + if (errorLabel3) errorLabel3->Show(); + } + } + else + { + // show an error message if the spellchecker plugin is not available + personalDictBox->Hide(); + enabled->Hide(); + colorR->Hide(); + colorG->Hide(); + colorB->Hide(); + pawsTextBox* personalDictionaryLabel = 0; + personalDictionaryLabel = dynamic_cast<pawsTextBox*>(FindWidget("PersonalDictionaryLabel")); + if (personalDictionaryLabel) personalDictionaryLabel->Hide(); + pawsTextBox* typoColorLabel = 0; + typoColorLabel = dynamic_cast<pawsTextBox*>(FindWidget("typoColorLabel")); + if (typoColorLabel) typoColorLabel->Hide(); + pawsTextBox* errorLabel1 = 0; + errorLabel1 = dynamic_cast<pawsTextBox*>(FindWidget("ErrorLabel1")); + if (errorLabel1) errorLabel1->Show(); + pawsTextBox* errorLabel2 = 0; + errorLabel2 = dynamic_cast<pawsTextBox*>(FindWidget("ErrorLabel2")); + if (errorLabel2) errorLabel2->Show(); + pawsTextBox* errorLabel3 = 0; + errorLabel3= dynamic_cast<pawsTextBox*>(FindWidget("ErrorLabel3")); + if (errorLabel3) errorLabel3->Show(); + if (errorLabel1) errorLabel1->SetText("Sorry, this version of PlaneShift was compiled without"); + if (errorLabel2) errorLabel2->SetText("support for the spell checker."); + if (errorLabel3) errorLabel3->SetText(""); + } + + return true; +} + +bool pawsConfigSpellChecker::Initialize() +{ + if ( ! LoadFromFile("configspellchecker.xml")) + { + return false; + } + return true; +} + +bool pawsConfigSpellChecker::LoadConfig() +{ + // set the checkbox according to the current state of the spellchecker + enabled->SetState(chatWindow->getInputTextBox()->getSpellChecked()); + // set the color of typos + csString r, g, b; + int ir, ig, ib; + + //PawsManager::GetSingleton().GetGraphics2D()-> + graphics2D->GetRGB(chatWindow->getInputTextBox()->getTypoColour(), ir, ig, ib); + r.Format("%d", ir); + g.Format("%d", ig); + b.Format("%d", ib); + + colorR->SetText(r); + colorG->SetText(g); + colorB->SetText(b); + + csRef<iSpellChecker> spellChecker = csQueryRegistryOrLoad<iSpellChecker>(PawsManager::GetSingleton().GetObjectRegistry(), "crystalspace.planeshift.spellchecker"); + + if (spellChecker) + { + //fill the text box with the words by putting them all in a single string separated by newlines + csString words(""); + for (size_t i = 0; i < spellChecker->getPersonalDict().GetSize(); i++) + { + words.Append(spellChecker->getPersonalDict()[i]).Append("\n"); + } + personalDictBox->SetText(words); + } + dirty = false; + return true; +} + +bool pawsConfigSpellChecker::SaveConfig() +{ + // save if the spellchecker is enabled or not + chatWindow->getInputTextBox()->setSpellChecked(enabled->GetState()); + + // save the color for typos + chatWindow->getInputTextBox()->setTypoColour(graphics2D->FindRGB(atoi(colorR->GetText()), atoi(colorG->GetText()), atoi(colorB->GetText()))); + + csRef<iSpellChecker> spellChecker = csQueryRegistryOrLoad<iSpellChecker>(PawsManager::GetSingleton().GetObjectRegistry(), "crystalspace.planeshift.spellchecker"); + + if (spellChecker) + { + // remove die perviously defined words from the list and hunspell + spellChecker->clearPersonalDict(); + + // then refill it with the values from the text box + // first we remove all unnecessary spaces + csString words = personalDictBox->GetText(); + words.Collapse(); + // then we exchange the remaining spaces with newlines as we need single words + words.FindReplace(" ", "\n"); + // last but not least we splitting the content of the textbox in single strings again + csString tmpWord; + size_t oldNewLine = 0; + size_t foundNewLine = words.Find("\n", oldNewLine); + while (foundNewLine != (size_t)-1) + { + words.SubString(tmpWord, oldNewLine, foundNewLine-oldNewLine); + tmpWord.Collapse(); + if (!tmpWord.IsEmpty()) + { + spellChecker->addWord(tmpWord); + } + oldNewLine = foundNewLine; + foundNewLine = words.Find("\n", oldNewLine+1); + } + words.SubString(tmpWord, oldNewLine, words.Length()-oldNewLine); + tmpWord.Collapse(); + if (!tmpWord.IsEmpty()) + { + spellChecker->addWord(tmpWord); + } + } + + // Save to file + chatWindow->SaveChatSettings(); + // and reload the config again so that difference made by the save function are displayed (for example the removed special chars from the words) + LoadConfig(); + return true; +} + +void pawsConfigSpellChecker::SetDefault() +{ + psengine->GetVFS()->DeleteFile(CONFIG_CHAT_FILE_NAME); + LoadConfig(); +} Property changes on: trunk/src/client/gui/pawsconfigspellchecker.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/src/client/gui/pawsconfigspellchecker.h =================================================================== --- trunk/src/client/gui/pawsconfigspellchecker.h (rev 0) +++ trunk/src/client/gui/pawsconfigspellchecker.h 2011-07-27 17:42:57 UTC (rev 7560) @@ -0,0 +1,66 @@ +/* + * pawsconfigspellchecker.h - Author: Fabian Stock (Aiw...@go...) + * + * Copyright (C) 2001-2011 Atomic Blue (in...@pl..., http://www.atomicblue.org) + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation (version 2 of the License) + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef PAWS_CONFIG_SPELLCHECKER_HEADER +#define PAWS_CONFIG_SPELLCHECKER_HEADER + +// PAWS INCLUDES +#include "paws/pawswidget.h" +#include "paws/pawscheckbox.h" +#include "pawsconfigwindow.h" + + +class pawsChatWindow; + +class pawsConfigSpellChecker : public pawsConfigSectionWindow +{ +public: + pawsConfigSpellChecker(); + + //from pawsWidget: + virtual bool PostSetup(); + + // from pawsConfigSectionWindow: + virtual bool Initialize(); + virtual bool LoadConfig(); + virtual bool SaveConfig(); + virtual void SetDefault(); + + // from pawsWidget + bool OnChange(pawsWidget* /*widget*/) { dirty = true; return true; } + virtual bool OnButtonPressed(int /*button*/, int /*keyModifier*/, pawsWidget* /*widget*/) + { + dirty = true; + return true; + } + virtual void OnListAction(pawsListBox* /*selected*/, int /*status*/) {dirty = true;}; + +private: + pawsChatWindow* chatWindow; + // needed gui elemets + pawsMultilineEditTextBox* personalDictBox; + pawsCheckBox* enabled; + pawsEditTextBox* colorR; + pawsEditTextBox* colorG; + pawsEditTextBox* colorB; +}; + +CREATE_PAWS_FACTORY( pawsConfigSpellChecker ); + +#endif //PAWS_CONFIG_SPELLCHECKER_HEADER Property changes on: trunk/src/client/gui/pawsconfigspellchecker.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-08-15 10:24:02
|
Revision: 7606 http://planeshift.svn.sourceforge.net/planeshift/?rev=7606&view=rev Author: weltall2 Date: 2011-08-15 10:23:56 +0000 (Mon, 15 Aug 2011) Log Message: ----------- merged last revision from zhan i hope it works fine because i get conflicts during merge Modified Paths: -------------- trunk/src/client/gui/chatwindow.cpp trunk/src/client/gui/chatwindow.h trunk/src/client/gui/pawsconfigchattabs.cpp Modified: trunk/src/client/gui/chatwindow.cpp =================================================================== --- trunk/src/client/gui/chatwindow.cpp 2011-08-15 10:05:39 UTC (rev 7605) +++ trunk/src/client/gui/chatwindow.cpp 2011-08-15 10:23:56 UTC (rev 7606) @@ -99,6 +99,10 @@ "CHAT_AWAY" }; + +// Get the value of the indexed bit +#define TABVALUE(tabsconfiguration,index) ((tabsconfiguration>>index) & 0x00000001) + ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// @@ -188,6 +192,84 @@ // Load the settings LoadChatSettings(); + // Adjust tabs according tabs + if(settings.chatWidget != "chat_basic.xml") + { + pawsWidget * pw = FindWidget("Chat Tabs"); + + csArray<csString> buttonNames;//tabs' names that will be searched later + buttonNames.Push("Main Button"); + buttonNames.Push("Chat Button"); + buttonNames.Push("NPC Button"); + buttonNames.Push("Tell Button"); + buttonNames.Push("Guild Button"); + buttonNames.Push("Group Button"); + buttonNames.Push("Alliance Button"); + buttonNames.Push("Auction Button"); + buttonNames.Push("System Button"); + buttonNames.Push("Help Button"); + + unsigned int ct = 0, lastX, lastY, increment; + bool isVertical = false; + pawsWidget * tmp; + for (unsigned int i = 0 ; i < buttonNames.GetSize() ; i++) + { + if(i == 0) + { + tmp = pw->FindWidget(buttonNames[i]); + lastX = tmp->DefaultFrame().xmin; + lastY = tmp->DefaultFrame().ymin; + } + if(TABVALUE(settings.tabSetting,i)) + {//this tab is visible + if(ct == 0) + { + tmp = pw->FindWidget(buttonNames[i]); + if(tmp->DefaultFrame().xmin != lastX || tmp->DefaultFrame().ymin != lastY) + { + tmp->SetRelativeFramePos(lastX,lastY); + } + tabs->OnButtonPressed(0,0,tmp);//activate the first tab + ct++; + continue; + } + tmp = pw->FindWidget(buttonNames[i]); + if(ct == 1) + { + unsigned int thisX, thisY; + thisX = tmp->DefaultFrame().xmin; + thisY = tmp->DefaultFrame().ymin; + + if(thisX == lastX && thisY != lastY) + { + isVertical = true; + increment = tmp->DefaultFrame().Height(); + } + else + { + increment = tmp->DefaultFrame().Width(); + } + } + if(isVertical) + { + tmp->SetRelativeFramePos(lastX,lastY+increment*ct); + //tmp->MoveDelta(0,increment*ct); + } + else + { + tmp->SetRelativeFramePos(lastX+increment*ct, lastY); + } + tmp->SetVisibility(true); + ct++; + } + else + { + tmp = pw->FindWidget(buttonNames[i]); + tmp->SetVisibility(false); + } + } + } + IgnoredList = (pawsIgnoreWindow*)PawsManager::GetSingleton().FindWidget("IgnoreWindow"); if ( !IgnoredList ) { @@ -1037,100 +1119,7 @@ cNode->SetAttributeAsInt("g",g); cNode->SetAttributeAsInt("b",b); } -// Get the value of the indexed bit -#define TABVALUE(tabsconfiguration,index) ((tabsconfiguration>>index) & 0x00000001) -void pawsChatWindow::SaveTabCongfiguration(unsigned int configurebits) -{ - if(filename != "chat.xml") return;// only change the xml definition of chat.xml - - csRef<iDocument> doc; - csRef<iDocumentNode> root, topNode, widgetNode; - - doc = ParseFile(PawsManager::GetSingleton().GetObjectRegistry(), - PawsManager::GetSingleton().GetLocalization()->FindLocalizedFile(filename)); - if (doc == NULL) - return ; - - root = doc->GetRoot(); - if (root == NULL) - { - Error1("No root in XML"); - return ; - } - topNode = root->GetNode("widget_description"); - if (topNode == NULL) - { - Error1("No <widget_description> in XML"); - return ; - } - widgetNode = topNode->GetNode("widget"); - if (widgetNode == NULL) - { - Error1("No <widget> in <widget_description>"); - return ; - } - - csRef<iDocumentNodeIterator> itr = widgetNode->GetNodes("widget"); - csRef<iDocumentNode> tabs; - while(itr->HasNext()) - { - tabs = itr->Next(); - csString winname = tabs->GetAttributeValue("name"); - if(winname == "Chat Tabs") - break; - } - - csArray<csString> buttonNames;//tabs' names that will be searched later - - - buttonNames.Push("Main Button"); - buttonNames.Push("Chat Button"); - buttonNames.Push("NPC Button"); - buttonNames.Push("Tell Button"); - buttonNames.Push("Guild Button"); - buttonNames.Push("Group Button"); - buttonNames.Push("Alliance Button"); - buttonNames.Push("Auction Button"); - buttonNames.Push("System Button"); - buttonNames.Push("Help Button"); - - itr = tabs->GetNodes("widget"); - - unsigned int C = 0; - - while(itr->HasNext()) - {// Search tabs in the xml document and set their visibility. - csRef<iDocumentNode> node = itr->Next(); - csString winname = node->GetAttributeValue("name"); - - for (unsigned i = 0 ; i < buttonNames.GetSize() ; i++) - { - if(buttonNames[i] == winname) - { - unsigned int state = TABVALUE(configurebits,i); - csRef<iDocumentNode> framenode = node->GetNode("frame"); - if(state) - { - csString ypos; - - ypos.Append(framenode->GetAttributeValueAsInt("height") * C++); - - node->SetAttribute("visible","yes"); - framenode->SetAttribute("y",ypos); // If a tab is visible, its position will be calculated and setted. - } - else node->SetAttribute("visible","no"); - } - } - } - - - csRef<iFile> file; - file = psengine->GetVFS()->Open("/this/data/gui/chat.xml",VFS_FILE_WRITE); - - doc->Write(file); // Save all the changes to chat.xml -} - void pawsChatWindow::SaveChatSettings() { // Save to file @@ -1149,7 +1138,7 @@ csRef<iDocument> doc = docsys->CreateDocument(); csRef<iDocumentNode> root,chatNode, colorNode, optionNode,looseNode,filtersNode, badWordsNode, badWordsTextNode, tabCompletionNode, completionItemNode, cNode, logNode, selectTabStyleNode, - echoScreenInSystemNode, mainBracketsNode, yourColorMixNode, joindefaultchannelNode, + echoScreenInSystemNode, mainBracketsNode, yourColorMixNode, joindefaultchannelNode, tabSettingNode, defaultlastchatNode, spellCheckerNode, spellCheckerWordNode, chatWidgetNode, mainTabNode, flashingNode, flashingOnCharNode, node; root = doc->CreateRoot(); @@ -1192,6 +1181,10 @@ looseNode->SetValue("loose"); looseNode->SetAttributeAsInt("value",(int)settings.looseFocusOnSend); + tabSettingNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0); + tabSettingNode->SetValue("tabSetting"); + tabSettingNode->SetAttributeAsInt("value",(int)settings.tabSetting); + for (int i = 0; i < CHAT_END; i++) { logNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0); @@ -1979,6 +1972,7 @@ } + void pawsChatWindow::ReloadChatWindow() { while ( children.GetSize() > 0 ) @@ -2014,6 +2008,7 @@ } LoadFromFile(filename); + } Modified: trunk/src/client/gui/chatwindow.h =================================================================== --- trunk/src/client/gui/chatwindow.h 2011-08-15 10:05:39 UTC (rev 7605) +++ trunk/src/client/gui/chatwindow.h 2011-08-15 10:23:56 UTC (rev 7606) @@ -105,7 +105,8 @@ int selectTabStyle; int vicinityFilters; ///< Flags int int meFilters; ///< Flags int - + unsigned int tabSetting; ///< The param's low 10 bits are used. Each of these 10 bits stands for the state of the corresponding chat tab. + /** Helper function to set correctly the @see dirtyLogChannelFile and @see logChannelFile options. * If the filename was changed it will set the dirty flag else nothing will be done. * @param type The chat type of which we are changing the log filename. @@ -221,13 +222,6 @@ /// Reload Chat Window void ReloadChatWindow(); - /** - * @brief Save user's configuration - * This function is used to save user's configuration to chat tabs. - * @param configurebits Holds user's configuration information. The param's low 10 bits are used. Each of these 10 bits stands for the state of the corresponding - * chat tab. - */ - void SaveTabCongfiguration(unsigned int configurebits); protected: Modified: trunk/src/client/gui/pawsconfigchattabs.cpp =================================================================== --- trunk/src/client/gui/pawsconfigchattabs.cpp 2011-08-15 10:05:39 UTC (rev 7605) +++ trunk/src/client/gui/pawsconfigchattabs.cpp 2011-08-15 10:23:56 UTC (rev 7606) @@ -218,14 +218,6 @@ //could be made more generic (scan the dir?) settings.chatWidget = basicchat->GetState() ? "chat_basic.xml" : "chat.xml"; - // Save to file - chatWindow->SaveChatSettings(); - - // Apply settings - chatWindow->LoadChatSettings(); - - chatWindow->SetFilename(settings.chatWidget); - //set the bit state for each tab in the "state" parameter if(settings.chatWidget == "chat.xml") { @@ -240,8 +232,18 @@ if(iauction->GetState()) state += 128; if(isys->GetState()) state += 256; if(ihelp->GetState()) state += 512; - chatWindow->SaveTabCongfiguration(state); + + settings.tabSetting = state; } + + // Save to file + chatWindow->SaveChatSettings(); + + // Apply settings + chatWindow->LoadChatSettings(); + + chatWindow->SetFilename(settings.chatWidget); + //Reload the chat window. chatWindow->ReloadChatWindow(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-09-08 17:52:53
|
Revision: 7633 http://planeshift.svn.sourceforge.net/planeshift/?rev=7633&view=rev Author: weltall2 Date: 2011-09-08 17:52:47 +0000 (Thu, 08 Sep 2011) Log Message: ----------- reworked previous patch for PS#5345 - hardcoded exchange-window widths basing it on neeno's patch Modified Paths: -------------- trunk/src/client/gui/pawsexchangewindow.cpp trunk/src/client/gui/pawsexchangewindow.h Modified: trunk/src/client/gui/pawsexchangewindow.cpp =================================================================== --- trunk/src/client/gui/pawsexchangewindow.cpp 2011-09-02 19:21:56 UTC (rev 7632) +++ trunk/src/client/gui/pawsexchangewindow.cpp 2011-09-08 17:52:47 UTC (rev 7633) @@ -85,6 +85,8 @@ psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_EXCHANGE_END); psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_EXCHANGE_STATUS); psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_EXCHANGE_MONEY); + + originalWidth = defaultFrame.width; // the two backgrounds for the offering/receiving frame offeringBG = FindWidget("Offering Frame"); @@ -190,9 +192,9 @@ textBox->SetText( text ); if (withPlayer) - width = screenFrame.Width(); + width = originalWidth; else - width = screenFrame.Width()/2; + width = originalWidth/2; SetRelativeFrameSize(GetActualWidth(width), defaultFrame.Height()); Modified: trunk/src/client/gui/pawsexchangewindow.h =================================================================== --- trunk/src/client/gui/pawsexchangewindow.h 2011-09-02 19:21:56 UTC (rev 7632) +++ trunk/src/client/gui/pawsexchangewindow.h 2011-09-08 17:52:47 UTC (rev 7633) @@ -84,6 +84,9 @@ /// retain the state of the inventory window before opening the exchange bool wasSmallInventoryOpen; + + /// stores width of exchange window + int windowWidth; psExchangeType type; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-09-08 19:22:12
|
Revision: 7634 http://planeshift.svn.sourceforge.net/planeshift/?rev=7634&view=rev Author: weltall2 Date: 2011-09-08 19:22:06 +0000 (Thu, 08 Sep 2011) Log Message: ----------- fixed build Modified Paths: -------------- trunk/src/client/gui/pawsexchangewindow.cpp trunk/src/client/gui/pawsexchangewindow.h Modified: trunk/src/client/gui/pawsexchangewindow.cpp =================================================================== --- trunk/src/client/gui/pawsexchangewindow.cpp 2011-09-08 17:52:47 UTC (rev 7633) +++ trunk/src/client/gui/pawsexchangewindow.cpp 2011-09-08 19:22:06 UTC (rev 7634) @@ -86,7 +86,7 @@ psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_EXCHANGE_STATUS); psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_EXCHANGE_MONEY); - originalWidth = defaultFrame.width; + originalWidth = defaultFrame.Width(); // the two backgrounds for the offering/receiving frame offeringBG = FindWidget("Offering Frame"); Modified: trunk/src/client/gui/pawsexchangewindow.h =================================================================== --- trunk/src/client/gui/pawsexchangewindow.h 2011-09-08 17:52:47 UTC (rev 7633) +++ trunk/src/client/gui/pawsexchangewindow.h 2011-09-08 19:22:06 UTC (rev 7634) @@ -86,7 +86,7 @@ bool wasSmallInventoryOpen; /// stores width of exchange window - int windowWidth; + int originalWidth; psExchangeType type; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wha...@us...> - 2011-09-10 13:40:23
|
Revision: 7639 http://planeshift.svn.sourceforge.net/planeshift/?rev=7639&view=rev Author: whacko88 Date: 2011-09-10 13:40:17 +0000 (Sat, 10 Sep 2011) Log Message: ----------- fixed adding notes on Linux Modified Paths: -------------- trunk/src/client/gui/pawsmusicwindow.cpp trunk/src/client/gui/pawssheetline.cpp Modified: trunk/src/client/gui/pawsmusicwindow.cpp =================================================================== --- trunk/src/client/gui/pawsmusicwindow.cpp 2011-09-10 09:53:39 UTC (rev 7638) +++ trunk/src/client/gui/pawsmusicwindow.cpp 2011-09-10 13:40:17 UTC (rev 7639) @@ -68,7 +68,7 @@ void pawsMusicWindow::OnChordSelection(SheetLine* sheetLine, Measure* measure, Chord* chord, int notePosition, bool before) { - bool done; // used to return before adding notes to the selected chord + bool done = false; // used to return before adding notes to the selected chord if(!editMode || pendingString) { Modified: trunk/src/client/gui/pawssheetline.cpp =================================================================== --- trunk/src/client/gui/pawssheetline.cpp 2011-09-10 09:53:39 UTC (rev 7638) +++ trunk/src/client/gui/pawssheetline.cpp 2011-09-10 13:40:17 UTC (rev 7639) @@ -1517,7 +1517,7 @@ bool SheetLine::SetSize(uint newSize, pawsSheetLine* pawsLine) { - bool isChanged; + bool isChanged = false; if(size != newSize) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-09-29 14:01:49
|
Revision: 7663 http://planeshift.svn.sourceforge.net/planeshift/?rev=7663&view=rev Author: weltall2 Date: 2011-09-29 14:01:38 +0000 (Thu, 29 Sep 2011) Log Message: ----------- fixed tab hiding functionality making mess with other functionalities. took 10 minutes to fix after 2 months lying there. Modified Paths: -------------- trunk/src/client/gui/chatwindow.cpp trunk/src/client/gui/pawsconfigchattabs.cpp trunk/src/client/gui/pawsconfigchattabs.h Modified: trunk/src/client/gui/chatwindow.cpp =================================================================== --- trunk/src/client/gui/chatwindow.cpp 2011-09-27 06:53:22 UTC (rev 7662) +++ trunk/src/client/gui/chatwindow.cpp 2011-09-29 14:01:38 UTC (rev 7663) @@ -363,7 +363,8 @@ if (nodeName == "loose") settings.looseFocusOnSend = option->GetAttributeValueAsBool("value", false); - + if (nodeName == "tabSetting") + settings.tabSetting = option->GetAttributeValueAsInt("value", 1023); else if (nodeName == "selecttabstyle") settings.selectTabStyle = (int)option->GetAttributeValueAsInt("value"); else if (nodeName == "echoscreeninsystem") @@ -1138,9 +1139,9 @@ csRef<iDocumentSystem> docsys = csPtr<iDocumentSystem> (new csTinyDocumentSystem ()); csRef<iDocument> doc = docsys->CreateDocument(); - csRef<iDocumentNode> root,chatNode, colorNode, optionNode,looseNode,filtersNode, + csRef<iDocumentNode> root, chatNode, colorNode, optionNode,looseNode,filtersNode, badWordsNode, badWordsTextNode, tabCompletionNode, completionItemNode, cNode, logNode, selectTabStyleNode, - echoScreenInSystemNode, mainBracketsNode, yourColorMixNode, joindefaultchannelNode, tabSettingNode, + echoScreenInSystemNode, mainBracketsNode, yourColorMixNode, joindefaultchannelNode, tabSettingNode, defaultlastchatNode, spellCheckerNode, spellCheckerWordNode, chatWidgetNode, mainTabNode, flashingNode, flashingOnCharNode, node; root = doc->CreateRoot(); Modified: trunk/src/client/gui/pawsconfigchattabs.cpp =================================================================== --- trunk/src/client/gui/pawsconfigchattabs.cpp 2011-09-27 06:53:22 UTC (rev 7662) +++ trunk/src/client/gui/pawsconfigchattabs.cpp 2011-09-29 14:01:38 UTC (rev 7663) @@ -47,7 +47,7 @@ Error1("Couldn't find ChatWindow!"); return false; } - // Find widgets + // Find widgets. These sets the main tab output if ((isysbase = FindCheckbox("isysbase")) == NULL) return false; if ((inpc = FindCheckbox("inpc")) == NULL) @@ -70,6 +70,29 @@ return false; if ((basicchat = FindCheckbox("basicchat")) == NULL) return false; + + //these sets the tabs to actually show + if ((issysbase = FindCheckbox("issysbase")) == NULL) + return false; + if ((isnpc = FindCheckbox("isnpc")) == NULL) + return false; + if ((ischat = FindCheckbox("ischat")) == NULL) + return false; + if ((istells = FindCheckbox("istells")) == NULL) + return false; + if ((isguild = FindCheckbox("isguild")) == NULL) + return false; + if ((isalliance = FindCheckbox("isalliance")) == NULL) + return false; + if ((isgroup = FindCheckbox("isgroup")) == NULL) + return false; + if ((isauction = FindCheckbox("isauction")) == NULL) + return false; + if ((issys = FindCheckbox("issys")) == NULL) + return false; + if ((ishelp = FindCheckbox("ishelp")) == NULL) + return false; + return true; } @@ -89,6 +112,16 @@ iauction->SetState(false); isys->SetState(false); ihelp->SetState(false); + issysbase->SetState(false); + ischat->SetState(false); + isnpc->SetState(false); + istells->SetState(false); + isguild->SetState(false); + isalliance->SetState(false); + isgroup->SetState(false); + isauction->SetState(false); + issys->SetState(false); + ishelp->SetState(false); basicchat->SetState(settings.chatWidget == "chat_basic.xml"); csArray<csString> allMainBindings = settings.bindings.GetAll("subMainText"); @@ -116,6 +149,37 @@ ihelp->SetState(true); } + //TODO: these magic numbers must disappear + if(settings.chatWidget == "chat.xml") + { + unsigned int state = settings.tabSetting; + issysbase->SetState(state & 1); + ischat->SetState(state & 2); + isnpc->SetState(state & 4); + istells->SetState(state & 8); + isguild->SetState(state & 16); + isgroup->SetState(state & 32); + isalliance->SetState(state & 64); + isauction->SetState(state & 128); + issys->SetState(state & 256); + ishelp->SetState(state & 512); + } + else + { + //we disable the settings as they are unusable. + issysbase->GetButton()->SetEnabled(false); + ischat->GetButton()->SetEnabled(false); + isnpc->GetButton()->SetEnabled(false); + istells->GetButton()->SetEnabled(false); + isguild->GetButton()->SetEnabled(false); + isalliance->GetButton()->SetEnabled(false); + isgroup->GetButton()->SetEnabled(false); + isauction->GetButton()->SetEnabled(false); + issys->GetButton()->SetEnabled(false); + ishelp->GetButton()->SetEnabled(false); + } + + // Check boxes doesn't send OnChange :( dirty = true; @@ -219,20 +283,21 @@ //could be made more generic (scan the dir?) settings.chatWidget = basicchat->GetState() ? "chat_basic.xml" : "chat.xml"; - //set the bit state for each tab in the "state" parameter + //set the bit state for each tab in the "state" parameter + //TODO: these magic numbers must disappear if(settings.chatWidget == "chat.xml") { unsigned int state = 0x00000000; - if(isysbase->GetState()) state += 1; - if(ichat->GetState()) state += 2; - if(inpc->GetState()) state += 4; - if(itells->GetState()) state += 8; - if(iguild->GetState()) state += 16; - if(igroup->GetState()) state += 32; - if(ialliance->GetState()) state += 64; - if(iauction->GetState()) state += 128; - if(isys->GetState()) state += 256; - if(ihelp->GetState()) state += 512; + if(issysbase->GetState()) state += 1; + if(ischat->GetState()) state += 2; + if(isnpc->GetState()) state += 4; + if(istells->GetState()) state += 8; + if(isguild->GetState()) state += 16; + if(isgroup->GetState()) state += 32; + if(isalliance->GetState()) state += 64; + if(isauction->GetState()) state += 128; + if(issys->GetState()) state += 256; + if(ishelp->GetState()) state += 512; settings.tabSetting = state; } Modified: trunk/src/client/gui/pawsconfigchattabs.h =================================================================== --- trunk/src/client/gui/pawsconfigchattabs.h 2011-09-27 06:53:22 UTC (rev 7662) +++ trunk/src/client/gui/pawsconfigchattabs.h 2011-09-29 14:01:38 UTC (rev 7663) @@ -43,6 +43,7 @@ private: pawsCheckBox *isysbase, *ichat, *inpc, *itells, *iguild, *ialliance, *igroup, *iauction, *isys, *ihelp, *basicchat; + pawsCheckBox *issysbase, *ischat, *isnpc, *istells, *isguild, *isalliance, *isgroup, *isauction, *issys, *ishelp; /// Finds the checkbox widget by name and returns the widget or NULL if not found. pawsCheckBox *FindCheckbox(const char *name); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-04-05 08:27:58
|
Revision: 8162 http://planeshift.svn.sourceforge.net/planeshift/?rev=8162&view=rev Author: weltall2 Date: 2012-04-05 08:27:49 +0000 (Thu, 05 Apr 2012) Log Message: ----------- cleanup better the bubbles Modified Paths: -------------- trunk/src/client/gui/pawsnpcdialog.cpp trunk/src/client/gui/pawsnpcdialog.h Modified: trunk/src/client/gui/pawsnpcdialog.cpp =================================================================== --- trunk/src/client/gui/pawsnpcdialog.cpp 2012-04-05 08:09:31 UTC (rev 8161) +++ trunk/src/client/gui/pawsnpcdialog.cpp 2012-04-05 08:27:49 UTC (rev 8162) @@ -72,6 +72,7 @@ { //setup the window with defaults. SetupWindowWidgets(); + CleanBubbles(); } return true; } @@ -554,6 +555,15 @@ } } +void pawsNpcDialogWindow::CleanBubbles() +{ + FindWidget("LeftArrow")->Hide(); + FindWidget("RightArrow")->Hide(); + displayIndex = 0; + questInfo.DeleteAll(); + DisplayQuest(0); +} + void pawsNpcDialogWindow::ShowIfBubbles() { if(useBubbles) @@ -610,9 +620,7 @@ if(useBubbles) { textBox->Clear(); - questInfo.DeleteAll(); - DisplayQuest(0); - displayIndex = 0; + CleanBubbles(); psengine->GetPSCamera()->LockCameraMode(false); psengine->GetCharManager()->LockTarget(false); if(psengine->GetPSCamera()->GetCameraMode() == 0) Modified: trunk/src/client/gui/pawsnpcdialog.h =================================================================== --- trunk/src/client/gui/pawsnpcdialog.h 2012-04-05 08:09:31 UTC (rev 8161) +++ trunk/src/client/gui/pawsnpcdialog.h 2012-04-05 08:27:49 UTC (rev 8162) @@ -66,6 +66,11 @@ void ShowIfBubbles(); /** + * empties all bubbles structures and hides them. + */ + void CleanBubbles(); + + /** * Shows the window and applies some special handling to fix up the window * Behaviour and graphics correctly depending if we use the classic menu * or the bubble menu This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-04-06 09:08:13
|
Revision: 8170 http://planeshift.svn.sourceforge.net/planeshift/?rev=8170&view=rev Author: weltall2 Date: 2012-04-06 09:08:02 +0000 (Fri, 06 Apr 2012) Log Message: ----------- some fixes Modified Paths: -------------- trunk/src/client/gui/pawsnpcdialog.cpp trunk/src/client/gui/pawsnpcdialog.h Modified: trunk/src/client/gui/pawsnpcdialog.cpp =================================================================== --- trunk/src/client/gui/pawsnpcdialog.cpp 2012-04-06 07:08:45 UTC (rev 8169) +++ trunk/src/client/gui/pawsnpcdialog.cpp 2012-04-06 09:08:02 UTC (rev 8170) @@ -27,6 +27,7 @@ #include "../globals.h" #include "paws/pawsborder.h" #include "gui/pawscontrolwindow.h" +#include "chatbubbles.h" #include "pscelclient.h" #include "pscamera.h" @@ -609,8 +610,8 @@ dynamic_cast<GEMClientActor *>(cobj)->SetPosition(p2,nyaw+3.1415f,isect); psengine->GetPSCamera()->SetCameraMode(0); //set the camera to the first person mode } - enabledChatBubbles = psengine->GetChatBubbles->isEnabled(); - psengine->GetChatBubbles->setEnabled(false); + enabledChatBubbles = psengine->GetChatBubbles()->isEnabled(); + psengine->GetChatBubbles()->setEnabled(false); } SetupWindowWidgets(); @@ -627,7 +628,7 @@ CleanBubbles(); psengine->GetPSCamera()->LockCameraMode(false); psengine->GetCharManager()->LockTarget(false); - psengine->GetChatBubbles->setEnabled(enabledChatBubbles); + psengine->GetChatBubbles()->setEnabled(enabledChatBubbles); if(psengine->GetPSCamera()->GetCameraMode() == 0) { psengine->GetPSCamera()->SetCameraMode(cameraMode); // restore camera mode Modified: trunk/src/client/gui/pawsnpcdialog.h =================================================================== --- trunk/src/client/gui/pawsnpcdialog.h 2012-04-06 07:08:45 UTC (rev 8169) +++ trunk/src/client/gui/pawsnpcdialog.h 2012-04-06 09:08:02 UTC (rev 8170) @@ -156,6 +156,7 @@ unsigned int displayIndex; ///< Index to display which quests int cameraMode; ///< Stores the camera mode int loadOnce; ///< Stores if bubbles has been loaded + bool enabledChatBubbles; ///< Stores the state of chat bubbles. pawsListBox* responseList; pawsWidget* speechBubble; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-04-24 16:56:06
|
Revision: 8243 http://planeshift.svn.sourceforge.net/planeshift/?rev=8243&view=rev Author: lpancallo Date: 2012-04-24 16:55:57 +0000 (Tue, 24 Apr 2012) Log Message: ----------- made the window modal. We should see if it's possible to have the examine window working better. Modified Paths: -------------- trunk/src/client/gui/pawsquestrewardwindow.cpp trunk/src/client/gui/pawsquestrewardwindow.h Modified: trunk/src/client/gui/pawsquestrewardwindow.cpp =================================================================== --- trunk/src/client/gui/pawsquestrewardwindow.cpp 2012-04-24 14:44:39 UTC (rev 8242) +++ trunk/src/client/gui/pawsquestrewardwindow.cpp 2012-04-24 16:55:57 UTC (rev 8243) @@ -62,7 +62,7 @@ msgqueue->Subscribe(this, MSGTYPE_QUESTREWARD); rewardList = (pawsListBox*)FindWidget("QuestRewardList"); - + return true; } @@ -72,6 +72,14 @@ return NULL; } +void pawsQuestRewardWindow::Show() +{ + pawsWidget::Show(); + + //we would like this window to stay always on top of others + SetModalState(true); +} + void pawsQuestRewardWindow::HandleMessage ( MsgEntry* me ) { psQuestRewardMessage message(me); @@ -121,6 +129,7 @@ csString item = rewardList->GetTextCell(row, COLUMN_ID)->GetText(); psQuestRewardMessage message(0, item, psQuestRewardMessage::selectReward); msgqueue->SendMessage(message.msg); + SetModalState(false); Hide(); } break; Modified: trunk/src/client/gui/pawsquestrewardwindow.h =================================================================== --- trunk/src/client/gui/pawsquestrewardwindow.h 2012-04-24 14:44:39 UTC (rev 8242) +++ trunk/src/client/gui/pawsquestrewardwindow.h 2012-04-24 16:55:57 UTC (rev 8243) @@ -33,6 +33,7 @@ const char* HandleCommand(const char* cmd); bool PostSetup(); + virtual void Show(); bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* widget); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-05-28 15:56:03
|
Revision: 8312 http://planeshift.svn.sourceforge.net/planeshift/?rev=8312&view=rev Author: lpancallo Date: 2012-05-28 15:55:57 +0000 (Mon, 28 May 2012) Log Message: ----------- NPCDialogue window stays always on bottom. (see also dialog.xml in previous commit). Modified Paths: -------------- trunk/src/client/gui/pawsnpcdialog.cpp trunk/src/client/gui/pawsnpcdialog.h Modified: trunk/src/client/gui/pawsnpcdialog.cpp =================================================================== --- trunk/src/client/gui/pawsnpcdialog.cpp 2012-05-28 15:54:18 UTC (rev 8311) +++ trunk/src/client/gui/pawsnpcdialog.cpp 2012-05-28 15:55:57 UTC (rev 8312) @@ -184,8 +184,9 @@ if(useBubbles) { if(widget) - {//process the left/right arrow clicking event + { csString name = widget->GetName(); + // process clicking on bubbles, but allow click-through on empty space if(name.StartsWith("Bubble")) { //get the trigger which was selected. we should never get out of bounds @@ -221,6 +222,7 @@ { clickedOnResponseBubble = true; } + // process the left/right arrow clicking event else { if(name == "LeftArrow") @@ -680,6 +682,7 @@ SetupWindowWidgets(); } + SendToBottom(this); } void pawsNpcDialogWindow::Hide() Modified: trunk/src/client/gui/pawsnpcdialog.h =================================================================== --- trunk/src/client/gui/pawsnpcdialog.h 2012-05-28 15:54:18 UTC (rev 8311) +++ trunk/src/client/gui/pawsnpcdialog.h 2012-05-28 15:55:57 UTC (rev 8312) @@ -81,6 +81,8 @@ bool OnMouseDown( int button, int modifiers, int x , int y ); bool OnButtonPressed( int button, int keyModifier, pawsWidget* widget ); + // This window should always stay on the background + virtual void BringToTop( pawsWidget* widget ) {}; /** * @brief Load quest info from xmlbinding message This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-05-28 16:04:14
|
Revision: 8313 http://planeshift.svn.sourceforge.net/planeshift/?rev=8313&view=rev Author: lpancallo Date: 2012-05-28 16:04:08 +0000 (Mon, 28 May 2012) Log Message: ----------- The modal setting for the reward window is no more needed, now that npcdialogue stays always on bottom. Modified Paths: -------------- trunk/src/client/gui/pawsquestrewardwindow.cpp trunk/src/client/gui/pawsquestrewardwindow.h Modified: trunk/src/client/gui/pawsquestrewardwindow.cpp =================================================================== --- trunk/src/client/gui/pawsquestrewardwindow.cpp 2012-05-28 15:55:57 UTC (rev 8312) +++ trunk/src/client/gui/pawsquestrewardwindow.cpp 2012-05-28 16:04:08 UTC (rev 8313) @@ -72,14 +72,6 @@ return NULL; } -void pawsQuestRewardWindow::Show() -{ - pawsWidget::Show(); - - //we would like this window to stay always on top of others - SetModalState(true); -} - void pawsQuestRewardWindow::HandleMessage ( MsgEntry* me ) { psQuestRewardMessage message(me); Modified: trunk/src/client/gui/pawsquestrewardwindow.h =================================================================== --- trunk/src/client/gui/pawsquestrewardwindow.h 2012-05-28 15:55:57 UTC (rev 8312) +++ trunk/src/client/gui/pawsquestrewardwindow.h 2012-05-28 16:04:08 UTC (rev 8313) @@ -33,7 +33,6 @@ const char* HandleCommand(const char* cmd); bool PostSetup(); - virtual void Show(); bool OnButtonPressed(int mouseButton, int keyModifier, pawsWidget* widget); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-05-28 19:47:16
|
Revision: 8315 http://planeshift.svn.sourceforge.net/planeshift/?rev=8315&view=rev Author: lpancallo Date: 2012-05-28 19:47:10 +0000 (Mon, 28 May 2012) Log Message: ----------- Fixed clean up of previous npc say bubble when new menu pops up. Fixed call to /npcmenu to be issued only when needed. Modified Paths: -------------- trunk/src/client/gui/pawsnpcdialog.cpp trunk/src/client/gui/pawsnpcdialog.h Modified: trunk/src/client/gui/pawsnpcdialog.cpp =================================================================== --- trunk/src/client/gui/pawsnpcdialog.cpp 2012-05-28 19:43:20 UTC (rev 8314) +++ trunk/src/client/gui/pawsnpcdialog.cpp 2012-05-28 19:47:10 UTC (rev 8315) @@ -55,6 +55,7 @@ loadOnce = 0; enabledChatBubbles = true; clickedOnResponseBubble = false; + gotNewMenu = false; } bool pawsNpcDialogWindow::PostSetup() @@ -85,9 +86,11 @@ void pawsNpcDialogWindow::Draw() { - if(useBubbles && ticks != 0 && csGetTicks()-ticks > 12000) - {//let this dialog invisible after 12 secs when npc finishes his speech - //equal to the long chatbubble longphrase lenght for now. + if(useBubbles && ticks != 0 && csGetTicks()-ticks > 12000 && !gotNewMenu) + { //let this dialog invisible after 12 secs when npc finishes his speech + //equal to the long chatbubble longphrase lenght for now. + //if we got a new psDialogMenuMessage we don't need to ask for a new menu (gotNewMenu) + Debug1(LOG_PAWS,0,"Hiding NPC speech and asking for another set of possible questions."); speechBubble->Hide(); FindWidget("FreeBubble")->Show(); psengine->GetCmdHandler()->Execute("/npcmenu"); @@ -213,9 +216,12 @@ DisplayTextBubbles(text.GetData()); CleanBubbles(); PawsManager::GetSingleton().SetCurrentFocusedWidget(textBox); + gotNewMenu = false; + ticks = csGetTicks(); // reset time, so we can wait for the next server response } else if(name == "CloseBubble") { + gotNewMenu = false; Hide(); } else if (name == "SpeechBubble") @@ -431,8 +437,10 @@ if(useBubbles) { + speechBubble->Hide(); // hide previous npc say response LoadQuest(mesg.xml); DisplayQuest(displayIndex); + gotNewMenu = true; } AdjustForPromptWindow(); @@ -440,8 +448,8 @@ } else if(me->GetType() == MSGTYPE_CHAT) { - psChatMessage chatMsg(me); + Debug2(LOG_QUESTS, 0,"Got Chat message from NPC: %s\n", (const char *)chatMsg.sText ); GEMClientActor* actor = dynamic_cast<GEMClientActor*> (psengine->GetCelClient()->FindObject(chatMsg.actor)); if (!actor) @@ -581,6 +589,8 @@ cmd.Format("/tellnpc %s", value ); psengine->GetCmdHandler()->Publish(cmd); DisplayTextBubbles(value); + gotNewMenu = false; + ticks = csGetTicks(); // reset time, so we can wait for the next server response } void pawsNpcDialogWindow::SetupWindowWidgets() Modified: trunk/src/client/gui/pawsnpcdialog.h =================================================================== --- trunk/src/client/gui/pawsnpcdialog.h 2012-05-28 19:43:20 UTC (rev 8314) +++ trunk/src/client/gui/pawsnpcdialog.h 2012-05-28 19:47:10 UTC (rev 8315) @@ -160,6 +160,7 @@ int loadOnce; ///< Stores if bubbles has been loaded bool enabledChatBubbles; ///< Stores the state of chat bubbles. bool clickedOnResponseBubble; ///< flag when player clicks on the response bubble + bool gotNewMenu; ///< keeps track of the incoming new menu message pawsListBox* responseList; pawsWidget* speechBubble; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-05-30 12:47:40
|
Revision: 8329 http://planeshift.svn.sourceforge.net/planeshift/?rev=8329&view=rev Author: lpancallo Date: 2012-05-30 12:47:29 +0000 (Wed, 30 May 2012) Log Message: ----------- Added time calculation to npcdialog to avoid 12 seconds wait on last npc say text Fixed handling of riddles Code cleanup / formatting Modified Paths: -------------- trunk/src/client/gui/pawsnpcdialog.cpp trunk/src/client/gui/pawsnpcdialog.h Modified: trunk/src/client/gui/pawsnpcdialog.cpp =================================================================== --- trunk/src/client/gui/pawsnpcdialog.cpp 2012-05-30 12:43:42 UTC (rev 8328) +++ trunk/src/client/gui/pawsnpcdialog.cpp 2012-05-30 12:47:29 UTC (rev 8329) @@ -37,14 +37,10 @@ /** * TODO: - * -fix handling of free text and questions - * -fix the graphics of the chat bubbles generically * -add support for numkey/enter action on the list version - * -need to move the catch of npc text from chatbubbles to an inner implementation here - * so the two classes aren't interwingled */ - + pawsNpcDialogWindow::pawsNpcDialogWindow() : targetEID(0) { responseList = NULL; @@ -56,11 +52,12 @@ enabledChatBubbles = true; clickedOnResponseBubble = false; gotNewMenu = false; + timeDelay = 3000; // initial minimum time of 3 seconds } bool pawsNpcDialogWindow::PostSetup() { - psengine->GetMsgHandler()->Subscribe( this, MSGTYPE_DIALOG_MENU ); + psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_DIALOG_MENU); psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_CHAT); psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_REMOVE_OBJECT); @@ -69,9 +66,9 @@ textBox = dynamic_cast<pawsEditTextBox*>(FindWidget("InputText")); closeBubble = dynamic_cast<pawsButton*>(FindWidget("CloseBubble")); - if( !responseList || !FindWidget("Lists") || !speechBubble || !FindWidget("Bubbles") || !closeBubble ) + if(!responseList || !FindWidget("Lists") || !speechBubble || !FindWidget("Bubbles") || !closeBubble) { - return false; + return false; } //loads the options regarding this window @@ -79,24 +76,24 @@ { //setup the window with defaults. SetupWindowWidgets(); - CleanBubbles(); + CleanBubbles(); } return true; } void pawsNpcDialogWindow::Draw() { - if(useBubbles && ticks != 0 && csGetTicks()-ticks > 12000 && !gotNewMenu) - { //let this dialog invisible after 12 secs when npc finishes his speech - //equal to the long chatbubble longphrase lenght for now. - //if we got a new psDialogMenuMessage we don't need to ask for a new menu (gotNewMenu) + //let this dialog invisible for the time calculated to read the NPC say text + //if we got a new psDialogMenuMessage we don't need to ask for a new menu (gotNewMenu) + if(useBubbles && ticks != 0 && csGetTicks()-ticks > timeDelay && !gotNewMenu) + { Debug1(LOG_PAWS,0,"Hiding NPC speech and asking for another set of possible questions."); speechBubble->Hide(); FindWidget("FreeBubble")->Show(); psengine->GetCmdHandler()->Execute("/npcmenu"); ticks = 0; } - + //printf("gotNewMenu: %d, ticks: %d timeDelay: %d\n",gotNewMenu?1:0, (csGetTicks()-ticks), timeDelay); pawsWidget::Draw(); } @@ -109,7 +106,7 @@ } -bool pawsNpcDialogWindow::OnKeyDown(utf32_char keyCode, utf32_char key, int modifiers ) +bool pawsNpcDialogWindow::OnKeyDown(utf32_char keyCode, utf32_char key, int modifiers) { //manage when the window has bubbles enabled if(useBubbles) @@ -120,14 +117,14 @@ { return pawsWidget::OnKeyDown(keyCode, key, modifiers); } - switch ( key ) + switch(key) { case CSKEY_ENTER: { csString text = textBox->GetText(); csString answer = ""; // - for (size_t i = 0 ; i < questInfo.GetSize(); i++) + for(size_t i = 0 ; i < questInfo.GetSize(); i++) { csString tmp = questInfo[i].text; tmp.DeleteAt(0,2); @@ -148,17 +145,17 @@ if(answer != "") { csString cmd; - if (answer.GetAt(0) == '=') // prompt window signal + if(answer.GetAt(0) == '=') // prompt window signal { pawsStringPromptWindow::Create(csString(answer.GetData()+1), - csString(""), - false, 320, 30, this, answer.GetData()+1 ); + csString(""), + false, 320, 30, this, answer.GetData()+1); } else { - if (answer.GetAt(0) != '<') + if(answer.GetAt(0) != '<') { - cmd.Format("/tellnpc %s", answer.GetData() ); + cmd.Format("/tellnpc %s", answer.GetData()); psengine->GetCmdHandler()->Publish(cmd); } else @@ -166,7 +163,9 @@ psSimpleStringMessage gift(0,MSGTYPE_EXCHANGE_AUTOGIVE,answer); gift.SendMessage(); } - DisplayTextBubbles(text.GetData()); + ticks = csGetTicks(); // reset time , so we wait for the next response + gotNewMenu = false; + DisplayTextInChat(text.GetData()); } textBox->Clear(); } @@ -182,7 +181,7 @@ return true; } -bool pawsNpcDialogWindow::OnButtonPressed( int button, int keyModifier, pawsWidget* widget ) +bool pawsNpcDialogWindow::OnButtonPressed(int button, int keyModifier, pawsWidget* widget) { if(useBubbles) { @@ -196,13 +195,15 @@ //if the system works well csString trigger = questInfo.Get(displayIndex+widget->GetID()-100).trig; csString text = questInfo.Get(displayIndex+widget->GetID()-100).text; - /*if(trigger.GetAt(0) == '=') // prompt window signal + // we clicked on a free text question, leave only free text box + if(trigger.GetAt(0) == '=') { - pawsStringPromptWindow::Create(csString(trigger.GetData()+1), - csString(""), - false, 320, 30, this, trigger.GetData()+1 ); - }*/ - if(trigger.GetAt(0) != '<') + ShowOnlyFreeText(); + PawsManager::GetSingleton().SetCurrentFocusedWidget(textBox); + gotNewMenu = true; + return true; + } + else if(trigger.GetAt(0) != '<') { csString cmd; cmd.Format("/tellnpc %s", trigger.GetData()); @@ -213,18 +214,18 @@ psSimpleStringMessage gift(0, MSGTYPE_EXCHANGE_AUTOGIVE, trigger); gift.SendMessage(); } - DisplayTextBubbles(text.GetData()); + DisplayTextInChat(text.GetData()); CleanBubbles(); PawsManager::GetSingleton().SetCurrentFocusedWidget(textBox); + ticks = csGetTicks(); // reset time, so we can wait for the next server response gotNewMenu = false; - ticks = csGetTicks(); // reset time, so we can wait for the next server response } else if(name == "CloseBubble") { gotNewMenu = false; Hide(); } - else if (name == "SpeechBubble") + else if(name == "SpeechBubble") { clickedOnResponseBubble = true; } @@ -242,20 +243,20 @@ else displayIndex = questInfo.GetSize() - 3; } - DisplayQuest(displayIndex); + DisplayQuestBubbles(displayIndex); pawsWidget *pw1 = FindWidget("LeftArrow"); pawsWidget *pw2 = FindWidget("RightArrow"); if(displayIndex < 3) - pw1->Hide(); + pw1->Hide(); else - pw1->Show(); + pw1->Show(); if(displayIndex >= questInfo.GetSize() - 3) - pw2->Hide(); + pw2->Hide(); else - pw2->Show(); + pw2->Show(); PawsManager::GetSingleton().SetCurrentFocusedWidget(textBox); } @@ -267,25 +268,25 @@ return OnButtonPressed(button, keyModifier, widget); } -bool pawsNpcDialogWindow::OnMouseDown( int button, int modifiers, int x , int y ) +bool pawsNpcDialogWindow::OnMouseDown(int button, int modifiers, int x , int y) { //let pawsWidget handle the event - bool result = pawsWidget::OnMouseDown( button, modifiers, x, y ); + bool result = pawsWidget::OnMouseDown(button, modifiers, x, y); if(useBubbles) - PawsManager::GetSingleton().SetCurrentFocusedWidget(textBox); + PawsManager::GetSingleton().SetCurrentFocusedWidget(textBox); return result; } -void pawsNpcDialogWindow::DisplayQuest(unsigned int index) +void pawsNpcDialogWindow::DisplayQuestBubbles(unsigned int index) { unsigned int c = 1; csString bname = ""; + //set text and visible bubbles for(unsigned int i = index; i < questInfo.GetSize() && c <= 3; i++, c++) { - //set visible bubbles bname = "Bubble"; bname.Append(c); pawsButton * pb = dynamic_cast<pawsButton*>(FindWidget(bname)); @@ -296,9 +297,10 @@ qt->SetText(questInfo[i].text); pb->Show(); } - for(;c <= 3 ; c++) + + //set remaining bubbles as invisible + for(; c <= 3 ; c++) { - //set invisible bubbles bname = "Bubble"; bname.Append(c); pawsButton * pb = dynamic_cast<pawsButton*>(FindWidget(bname)); @@ -316,8 +318,8 @@ csRef<iDocumentSystem> xml = csPtr<iDocumentSystem>(new csTinyDocumentSystem); csRef<iDocument> doc= xml->CreateDocument(); - const char *error = doc->Parse( xmlstr ); - if (error) + const char *error = doc->Parse(xmlstr); + if(error) { Error2("%s\n", error); return; @@ -345,7 +347,7 @@ csRef<iDocumentNode> trg = cur->GetNode("trig"); qi.text = txt->GetContentsValue(); qi.trig = trg->GetContentsValue(); - if(!qi.text.StartsWith("?=")) + if(!qi.text.StartsWith("?=")) // by purpose this line catches only the questmenu item, not the npcdialogue item { questInfo.Push(qi); } @@ -358,17 +360,17 @@ pw1->Hide(); if(questInfo.GetSize() <= 3) - pw2->Hide(); + pw2->Hide(); else - pw2->Show(); + pw2->Show(); } -void pawsNpcDialogWindow::OnListAction( pawsListBox* widget, int status ) +void pawsNpcDialogWindow::OnListAction(pawsListBox* widget, int status) { if(status == LISTBOX_HIGHLIGHTED) { pawsTextBox *fld = dynamic_cast<pawsTextBox *>(widget->GetSelectedRow()->FindWidgetXMLBinding("text")); - Debug2(LOG_QUESTS, 0, "Pressed: %s\n",fld->GetText() ); + Debug2(LOG_QUESTS, 0, "Pressed: %s\n",fld->GetText()); } else if(status == LISTBOX_SELECTED) { @@ -377,25 +379,25 @@ return; pawsTextBox *fld = dynamic_cast<pawsTextBox *>(widget->GetSelectedRow()->FindWidgetXMLBinding("text")); - Debug2(LOG_QUESTS, 0,"Player chose '%s'.\n", fld->GetText() ); + Debug2(LOG_QUESTS, 0,"Player chose '%s'.\n", fld->GetText()); pawsTextBox *trig = dynamic_cast<pawsTextBox *>(widget->GetSelectedRow()->FindWidgetXMLBinding("trig")); - Debug2(LOG_QUESTS, 0,"Player says '%s'.\n", trig->GetText() ); + Debug2(LOG_QUESTS, 0,"Player says '%s'.\n", trig->GetText()); csString trigger(trig->GetText()); // Send the server the original trigger csString cmd; - if(trigger.GetAt(0) == '=') // prompt window signal + if(trigger.GetAt(0) == '=') // prompt window signal { pawsStringPromptWindow::Create(csString(trigger.GetData()+1), csString(""), - false, 320, 30, this, trigger.GetData()+1 ); + false, 320, 30, this, trigger.GetData()+1); } else { if(trigger.GetAt(0) != '<') { - cmd.Format("/tellnpc %s", trigger.GetData() ); + cmd.Format("/tellnpc %s", trigger.GetData()); psengine->GetCmdHandler()->Publish(cmd); } else @@ -403,15 +405,15 @@ psSimpleStringMessage gift(0,MSGTYPE_EXCHANGE_AUTOGIVE,trigger); gift.SendMessage(); } - DisplayTextBubbles(fld->GetText()); + DisplayTextInChat(fld->GetText()); } Hide(); } } -void pawsNpcDialogWindow::DisplayTextBubbles(const char *sayWhat) +void pawsNpcDialogWindow::DisplayTextInChat(const char *sayWhat) { - // Now send the chat window and chat bubbles the nice menu text + // Now send the message to the NPC csString text(sayWhat); size_t dot = text.FindFirst('.'); // Take out the numbering to display if(dot != SIZET_NOT_FOUND) @@ -419,45 +421,49 @@ text.DeleteAt(0,dot+1); } csString cmd; - cmd.Format("/tellnpcinternal %s", text.GetData() ); + cmd.Format("/tellnpcinternal %s", text.GetData()); psengine->GetCmdHandler()->Publish(cmd); responseList->Clear(); } -void pawsNpcDialogWindow::HandleMessage( MsgEntry* me ) +void pawsNpcDialogWindow::HandleMessage(MsgEntry* me) { if(me->GetType() == MSGTYPE_DIALOG_MENU) { psDialogMenuMessage mesg(me); - Debug2(LOG_QUESTS, 0,"Got psDialogMenuMessage: %s\n", mesg.xml.GetDataSafe() ); + Debug2(LOG_QUESTS, 0,"Got psDialogMenuMessage: %s\n", mesg.xml.GetDataSafe()); responseList->Clear(); SelfPopulateXML(mesg.xml); if(useBubbles) { - speechBubble->Hide(); // hide previous npc say response - LoadQuest(mesg.xml); - DisplayQuest(displayIndex); - gotNewMenu = true; + speechBubble->Hide(); // hide previous npc say response + LoadQuest(mesg.xml); + AdjustForPromptWindow(); // should be done before DisplayQuestBubbles + DisplayQuestBubbles(displayIndex); + gotNewMenu = true; } + else + { + AdjustForPromptWindow(); + } - AdjustForPromptWindow(); Show(); } else if(me->GetType() == MSGTYPE_CHAT) { psChatMessage chatMsg(me); - Debug2(LOG_QUESTS, 0,"Got Chat message from NPC: %s\n", (const char *)chatMsg.sText ); + Debug2(LOG_QUESTS, 0,"Got Chat message from NPC: %s\n", (const char *)chatMsg.sText); - GEMClientActor* actor = dynamic_cast<GEMClientActor*> (psengine->GetCelClient()->FindObject(chatMsg.actor)); - if (!actor) + GEMClientActor* actor = dynamic_cast<GEMClientActor*>(psengine->GetCelClient()->FindObject(chatMsg.actor)); + if(!actor) return; // handle the basic action types, in the future we could play an animation as well csString inText ; - switch( chatMsg.iChatType ) + switch(chatMsg.iChatType) { case CHAT_NPC_ME: { @@ -482,7 +488,7 @@ NpcSays(inText, actor); //checks if the NPC Dialogue is displayed, in this case don't show the normal overhead bubble - if (IsVisible()) + if(IsVisible()) return; } else if(me->GetType() == MSGTYPE_REMOVE_OBJECT) @@ -523,6 +529,8 @@ FindWidget("FreeBubble")->Hide(); ticks = csGetTicks(); + timeDelay = (csTicks)(2000 + 50*strlen(inText.GetData()) + 2000); // add 2 seconds for network delay + timeDelay = timeDelay>14000?14000:timeDelay; // clamp to 14000 max Show(); //show the npc dialog } @@ -533,11 +541,12 @@ { csString str; + // This part is used only for menu npc dialogue for(size_t i=0; i<responseList->GetRowCount(); i++) { str = responseList->GetTextCellValue(i,0); size_t where = str.Find("?="); - if(where != SIZET_NOT_FOUND) // we have a prompt choice + if(where != SIZET_NOT_FOUND) // we have a prompt choice { pawsTextBox *hidden = (pawsTextBox*)responseList->GetRow(i)->GetColumn(1); if(where != SIZET_NOT_FOUND) @@ -558,6 +567,7 @@ } } + // this part is used only with bubbles npc dialogue for(size_t i = 0 ; i < questInfo.GetSize(); i++) { QuestInfo & qi = questInfo[i]; @@ -586,11 +596,11 @@ Debug3(LOG_QUESTS, 0,"Got name=%s, value=%s\n", name, value); csString cmd; - cmd.Format("/tellnpc %s", value ); + cmd.Format("/tellnpc %s", value); psengine->GetCmdHandler()->Publish(cmd); - DisplayTextBubbles(value); + DisplayTextInChat(value); + ticks = csGetTicks(); // reset time, so we can wait for the next server response gotNewMenu = false; - ticks = csGetTicks(); // reset time, so we can wait for the next server response } void pawsNpcDialogWindow::SetupWindowWidgets() @@ -638,9 +648,28 @@ FindWidget("SpeechBubble")->Hide(); displayIndex = 0; questInfo.DeleteAll(); - DisplayQuest(0); + DisplayQuestBubbles(0); } +void pawsNpcDialogWindow::ShowOnlyFreeText() +{ + // hide arrows + FindWidget("LeftArrow")->Hide(); + FindWidget("RightArrow")->Hide(); + + // hide bubbles + csString bname = ""; + for(int c=1; c <= 3 ; c++) + { + bname = "Bubble"; + bname.Append(c); + pawsButton * pb = dynamic_cast<pawsButton*>(FindWidget(bname)); + pb->Hide(); + } + + FindWidget("FreeBubble")->Show(); +} + void pawsNpcDialogWindow::ShowIfBubbles() { if(useBubbles) @@ -656,41 +685,41 @@ if(loadOnce == 0) { - loadOnce++; + loadOnce++; - //split apart just for visiblity ordering in source - if(useBubbles) - { - cameraMode = psengine->GetPSCamera()->GetCameraMode(); //get the camera's current mode + //split apart just for visiblity ordering in source + if(useBubbles) + { + cameraMode = psengine->GetPSCamera()->GetCameraMode(); //get the camera's current mode - GEMClientObject* cobj = psengine->GetCharManager()->GetTarget(); - if(cobj) - { - //let the camera focus upon the target npc - csRef<psCelClient> celclient = psengine->GetCelClient(); - GEMClientObject * mobj = celclient->GetMainPlayer(); - csVector3 p1 = cobj->GetPosition(); - csVector3 p2 = mobj->GetPosition(); - csVector3 direction = p1 - p2; - if(direction.x == 0.0f) - direction.x = 0.00001f; - float nyaw = atan2(-direction.x, -direction.z); + GEMClientObject* cobj = psengine->GetCharManager()->GetTarget(); + if(cobj) + { + //let the camera focus upon the target npc + csRef<psCelClient> celclient = psengine->GetCelClient(); + GEMClientObject * mobj = celclient->GetMainPlayer(); + csVector3 p1 = cobj->GetPosition(); + csVector3 p2 = mobj->GetPosition(); + csVector3 direction = p1 - p2; + if(direction.x == 0.0f) + direction.x = 0.00001f; + float nyaw = atan2(-direction.x, -direction.z); - csVector3 pos; - float yrot,rot; - iSector * isect; - dynamic_cast<GEMClientActor *>(mobj)->GetLastPosition(p1,yrot,isect); - dynamic_cast<GEMClientActor *>(mobj)->SetPosition(p1,nyaw,isect); - dynamic_cast<GEMClientActor *>(cobj)->GetLastPosition(p2,rot,isect); - dynamic_cast<GEMClientActor *>(cobj)->SetPosition(p2,nyaw+3.1415f,isect); - psengine->GetPSCamera()->SetCameraMode(0); //set the camera to the first person mode - targetEID = cobj->GetEID(); - } - enabledChatBubbles = psengine->GetChatBubbles()->isEnabled(); - //psengine->GetChatBubbles()->setEnabled(false); - } + csVector3 pos; + float yrot,rot; + iSector * isect; + dynamic_cast<GEMClientActor *>(mobj)->GetLastPosition(p1,yrot,isect); + dynamic_cast<GEMClientActor *>(mobj)->SetPosition(p1,nyaw,isect); + dynamic_cast<GEMClientActor *>(cobj)->GetLastPosition(p2,rot,isect); + dynamic_cast<GEMClientActor *>(cobj)->SetPosition(p2,nyaw+3.1415f,isect); + psengine->GetPSCamera()->SetCameraMode(0); //set the camera to the first person mode + targetEID = cobj->GetEID(); + } + enabledChatBubbles = psengine->GetChatBubbles()->isEnabled(); + //psengine->GetChatBubbles()->setEnabled(false); + } - SetupWindowWidgets(); + SetupWindowWidgets(); } SendToBottom(this); } @@ -711,7 +740,7 @@ psengine->GetPSCamera()->SetCameraMode(cameraMode); // restore camera mode } } - + pawsWidget::Hide(); } @@ -755,10 +784,11 @@ while(oNodes->HasNext()) { csRef<iDocumentNode> option = oNodes->Next(); - csString nodeName (option->GetValue()); + csString nodeName(option->GetValue()); if(nodeName == "usenpcdialog") - { //showWindow->SetState(!option->GetAttributeValueAsBool("value")); + { + //showWindow->SetState(!option->GetAttributeValueAsBool("value")); useBubbles = option->GetAttributeValueAsBool("value"); } } @@ -772,7 +802,7 @@ csRef<iFile> file; file = psengine->GetVFS()->Open(CONFIG_NPCDIALOG_FILE_NAME,VFS_FILE_WRITE); - csRef<iDocumentSystem> docsys = csPtr<iDocumentSystem> (new csTinyDocumentSystem ()); + csRef<iDocumentSystem> docsys = csPtr<iDocumentSystem> (new csTinyDocumentSystem()); csRef<iDocument> doc = docsys->CreateDocument(); csRef<iDocumentNode> root,defaultRoot, npcDialogNode, npcDialogOptionsNode, useNpcDialogNode; Modified: trunk/src/client/gui/pawsnpcdialog.h =================================================================== --- trunk/src/client/gui/pawsnpcdialog.h 2012-05-30 12:43:42 UTC (rev 8328) +++ trunk/src/client/gui/pawsnpcdialog.h 2012-05-30 12:47:29 UTC (rev 8329) @@ -47,9 +47,9 @@ pawsNpcDialogWindow(); bool PostSetup(); - void HandleMessage( MsgEntry* me ); + void HandleMessage(MsgEntry* me); - void OnListAction( pawsListBox* widget, int status ); + void OnListAction(pawsListBox* widget, int status); void OnStringEntered(const char *name,int param,const char *value); @@ -71,18 +71,23 @@ void CleanBubbles(); /** + * Hides all bubbles except freetext and bye. + */ + void ShowOnlyFreeText(); + + /** * Shows the window and applies some special handling to fix up the window * Behaviour and graphics correctly depending if we use the classic menu * or the bubble menu */ virtual void Show(); virtual void Hide(); - bool OnKeyDown(utf32_char keyCode, utf32_char key, int modifiers ); - bool OnMouseDown( int button, int modifiers, int x , int y ); - bool OnButtonPressed( int button, int keyModifier, pawsWidget* widget ); + bool OnKeyDown(utf32_char keyCode, utf32_char key, int modifiers); + bool OnMouseDown(int button, int modifiers, int x , int y); + bool OnButtonPressed(int button, int keyModifier, pawsWidget* widget); // This window should always stay on the background - virtual void BringToTop( pawsWidget* widget ) {}; + virtual void BringToTop(pawsWidget* widget) {}; /** * @brief Load quest info from xmlbinding message @@ -98,7 +103,7 @@ * @param index From which index in questInfo array the quest info will be displayed in bubbles. * */ - void DisplayQuest(unsigned int index); + void DisplayQuestBubbles(unsigned int index); /** * @brief Display NPC's chat text @@ -125,13 +130,19 @@ * @return TRUE if we are using the bubbles based npc dialog interface * FALSE if we are using the menu based npc dialog interface */ - bool GetUseBubbles() { return useBubbles; } + bool GetUseBubbles() + { + return useBubbles; + } /** * Sets if we have to use the bubbles based npc dialog interface (true) * or the classic menu based one (false). * @note This doesn't reconfigure the widgets for the new modality. */ - void SetUseBubbles(bool useBubblesNew) { useBubbles = useBubblesNew; } + void SetUseBubbles(bool useBubblesNew) + { + useBubbles = useBubblesNew; + } /** @@ -149,18 +160,20 @@ private: void AdjustForPromptWindow(); /** - * Handles the inner display of text bubbles from the player + * Handles the display of player text in chat */ - void DisplayTextBubbles(const char *sayWhat); + void DisplayTextInChat(const char *sayWhat); + bool useBubbles; ///< Stores which modality should be used for the npcdialog (bubbles/menus) - csArray<QuestInfo> questInfo; ///< Stores all the quest info and triggers parsed from xml binding. - unsigned int displayIndex; ///< Index to display which quests - int cameraMode; ///< Stores the camera mode - int loadOnce; ///< Stores if bubbles has been loaded - bool enabledChatBubbles; ///< Stores the state of chat bubbles. + csArray<QuestInfo> questInfo; ///< Stores all the quest info and triggers parsed from xml binding. + unsigned int displayIndex; ///< Index to display which quests + int cameraMode; ///< Stores the camera mode + int loadOnce; ///< Stores if bubbles has been loaded + bool enabledChatBubbles; ///< Stores the state of chat bubbles. bool clickedOnResponseBubble; ///< flag when player clicks on the response bubble - bool gotNewMenu; ///< keeps track of the incoming new menu message + bool gotNewMenu; ///< keeps track of the incoming new menu message + int timeDelay; ///< calculates the time needed to read the last npc say pawsListBox* responseList; pawsWidget* speechBubble; @@ -171,5 +184,5 @@ }; -CREATE_PAWS_FACTORY( pawsNpcDialogWindow ); +CREATE_PAWS_FACTORY(pawsNpcDialogWindow); #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-04-01 15:35:47
|
Revision: 8657 http://planeshift.svn.sourceforge.net/planeshift/?rev=8657&view=rev Author: magodra Date: 2013-04-01 15:35:37 +0000 (Mon, 01 Apr 2013) Log Message: ----------- - Added use of psViewContainerDescription class in the client. Modified Paths: -------------- trunk/src/client/gui/pawscontainerdescwindow.cpp trunk/src/client/gui/pawscontainerdescwindow.h Modified: trunk/src/client/gui/pawscontainerdescwindow.cpp =================================================================== --- trunk/src/client/gui/pawscontainerdescwindow.cpp 2013-04-01 15:32:00 UTC (rev 8656) +++ trunk/src/client/gui/pawscontainerdescwindow.cpp 2013-04-01 15:35:37 UTC (rev 8657) @@ -117,10 +117,10 @@ PawsManager::GetSingleton().Publish(sigData, data); } -void pawsContainerDescWindow::HandleViewItem( MsgEntry* me ) +void pawsContainerDescWindow::HandleViewContainer( MsgEntry* me ) { Show(); - psViewItemDescription mesg(me, ((psNetManager*)psengine->GetNetManager())->GetConnection()->GetAccessPointers()); + psViewContainerDescription mesg(me, ((psNetManager*)psengine->GetNetManager())->GetConnection()->GetAccessPointers()); description->SetText( mesg.itemDescription ); name->SetText( mesg.itemName ); @@ -142,7 +142,7 @@ Debug2(LOG_CHARACTER, 0, "Setting up container %d.", mesg.containerID); contents->Clear(); - containerSlots = mesg.ContainerSlots; + containerSlots = mesg.maxContainerSlots; const int cols = contents->GetTotalColumns(); //6; const int rows = (int) ceil(float(containerSlots)/cols); @@ -210,7 +210,7 @@ { case MSGTYPE_VIEW_CONTAINER: { - HandleViewItem( me ); + HandleViewContainer( me ); break; } case MSGTYPE_UPDATE_ITEM: Modified: trunk/src/client/gui/pawscontainerdescwindow.h =================================================================== --- trunk/src/client/gui/pawscontainerdescwindow.h 2013-04-01 15:32:00 UTC (rev 8656) +++ trunk/src/client/gui/pawscontainerdescwindow.h 2013-04-01 15:35:37 UTC (rev 8657) @@ -46,15 +46,15 @@ private: void HandleUpdateItem( MsgEntry* me ); - void HandleViewItem( MsgEntry* me ); + void HandleViewContainer( MsgEntry* me ); - pawsTextBox* name; + pawsTextBox* name; pawsMultiLineTextBox* description; - pawsWidget* pic; - ContainerID containerID; - pawsListBox* contents; + pawsWidget* pic; + ContainerID containerID; + pawsListBox* contents; - int containerSlots; + int containerSlots; }; CREATE_PAWS_FACTORY( pawsContainerDescWindow ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |