ScrollBar::ScrollBar() : Widget() { color = -1; MinValue = 1; MaxValue = 1; CurrentValue = 1; bigStepSize = 10; bDragSlider = false; EnableResizing(false,true); UpdateArrowButtonSurface(); Arrow1.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&ScrollBar::OnArrow1))); Arrow2.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&ScrollBar::OnArrow2))); pBackground = NULL; Resize(GetMinimumSize().x,GetMinimumSize().y); }
ListBox::ListBox() : Widget() { EnableResizing(true,true); pBackground = NULL; pForeground = NULL; color = -1; bAutohideScrollbar = true; FirstVisibleElement = 0; SelectedElement = -1; LastClickTime = 0; scrollbar.SetOnChangeMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&ListBox::OnScrollbarChange))); Resize(GetMinimumSize().x,GetMinimumSize().y); }
static void UpdateGeneric( void *buf, long obji) { BSAVE_GENERIC *bgp; DEFGENERIC *gp; bgp = (BSAVE_GENERIC *) buf; gp = (DEFGENERIC *) &defgenericArray[obji]; UpdateConstructHeader(&bgp->header,&gp->header, (int) sizeof(DEFGENERIC_MODULE),(void *) ModuleArray, (int) sizeof(DEFGENERIC),(void *) defgenericArray); defgenericArray[obji].busy = 0; #if DEBUGGING_FUNCTIONS defgenericArray[obji].trace = WatchGenerics; #endif defgenericArray[obji].methods = MethodPointer(bgp->methods); defgenericArray[obji].mcnt = bgp->mcnt; defgenericArray[obji].new_index = 0; }
static void UpdateGeneric( void *theEnv, void *buf, long obji) { BSAVE_GENERIC *bgp; DEFGENERIC *gp; bgp = (BSAVE_GENERIC *) buf; gp = (DEFGENERIC *) &DefgenericBinaryData(theEnv)->DefgenericArray[obji]; UpdateConstructHeader(theEnv,&bgp->header,&gp->header, (int) sizeof(DEFGENERIC_MODULE),(void *) DefgenericBinaryData(theEnv)->ModuleArray, (int) sizeof(DEFGENERIC),(void *) DefgenericBinaryData(theEnv)->DefgenericArray); DefgenericBinaryData(theEnv)->DefgenericArray[obji].busy = 0; #if DEBUGGING_FUNCTIONS DefgenericBinaryData(theEnv)->DefgenericArray[obji].trace = DefgenericData(theEnv)->WatchGenerics; #endif DefgenericBinaryData(theEnv)->DefgenericArray[obji].methods = MethodPointer(bgp->methods); DefgenericBinaryData(theEnv)->DefgenericArray[obji].mcnt = bgp->mcnt; DefgenericBinaryData(theEnv)->DefgenericArray[obji].new_index = 0; }
SinglePlayerMenu::SinglePlayerMenu() : MenuClass() { // set up window SDL_Surface *surf; surf = pGFXManager->getUIGraphic(UI_MenuBackground); SetBackground(surf,false); Resize(surf->w,surf->h); SetWindowWidget(&WindowWidget); // set up pictures in the background surf = pGFXManager->getUIGraphic(UI_PlanetBackground); PlanetPicture.SetSurface(surf,false); WindowWidget.AddWidget(&PlanetPicture, Point((screen->w - surf->w)/2,screen->h/2 - surf->h + 10), Point(surf->w,surf->h)); surf = pGFXManager->getUIGraphic(UI_DuneLegacy); DuneLegacy.SetSurface(surf,false); WindowWidget.AddWidget(&DuneLegacy, Point((screen->w - surf->w)/2, screen->h/2 + 28), Point(surf->w,surf->h)); surf = pGFXManager->getUIGraphic(UI_MenuButtonBorder); ButtonBorder.SetSurface(surf,false); WindowWidget.AddWidget(&ButtonBorder, Point((screen->w - surf->w)/2, screen->h/2 + 59), Point(surf->w,surf->h)); // set up menu buttons WindowWidget.AddWidget(&MenuButtons,Point((screen->w - 160)/2,screen->h/2 + 64), Point(160,111)); Button_Campaign.SetText(pTextManager->getLocalized("CAMPAIGN")); Button_Campaign.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnCampaign))); MenuButtons.AddWidget(&Button_Campaign); Button_Campaign.SetActive(); MenuButtons.AddWidget(VSpacer::Create(3)); Button_Custom.SetText(pTextManager->getLocalized("CUSTOM GAME")); Button_Custom.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnCustom))); MenuButtons.AddWidget(&Button_Custom); MenuButtons.AddWidget(VSpacer::Create(3)); Button_Skirmish.SetText(pTextManager->getLocalized("SKIRMISH")); Button_Skirmish.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnSkirmish))); MenuButtons.AddWidget(&Button_Skirmish); MenuButtons.AddWidget(VSpacer::Create(3)); Button_LoadSavegame.SetText(pTextManager->getLocalized("LOAD GAME")); Button_LoadSavegame.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnLoadSavegame))); MenuButtons.AddWidget(&Button_LoadSavegame); MenuButtons.AddWidget(VSpacer::Create(3)); Button_LoadReplay.SetText(pTextManager->getLocalized("LOAD REPLAY")); Button_LoadReplay.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnLoadReplay))); MenuButtons.AddWidget(&Button_LoadReplay); MenuButtons.AddWidget(VSpacer::Create(3)); Button_Cancel.SetText(pTextManager->getLocalized("BACK")); Button_Cancel.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnCancel))); MenuButtons.AddWidget(&Button_Cancel); // Difficulty Button surf = pGFXManager->getUIGraphic(UI_Difficulty); Picture_Difficulty.SetSurface(surf,false); WindowWidget.AddWidget( &Picture_Difficulty, Point((screen->w-160)/4 - surf->w/2,screen->h/2 + 64), Point(surf->w,surf->h)); surf = pGFXManager->getUIGraphic(UI_Dif_Medium); Button_Difficulty.SetSurfaces(surf,false); Button_Difficulty.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&SinglePlayerMenu::OnDifficulty))); WindowWidget.AddWidget( &Button_Difficulty, Point((screen->w-160)/4 - surf->w/2 - 1,screen->h/2 + 104), Point(surf->w,surf->h)); UpdateDifficulty(); }
MainMenu::MainMenu() : MenuClass() { // set up window SDL_Surface *surf; surf = pGFXManager->getUIGraphic(UI_MenuBackground); SetBackground(surf,false); Resize(surf->w,surf->h); SetWindowWidget(&WindowWidget); // set up pictures in the background surf = pGFXManager->getUIGraphic(UI_PlanetBackground); PlanetPicture.SetSurface(surf,false); WindowWidget.AddWidget(&PlanetPicture, Point((screen->w - surf->w)/2,screen->h/2 - surf->h + 10), Point(surf->w,surf->h)); surf = pGFXManager->getUIGraphic(UI_DuneLegacy); DuneLegacy.SetSurface(surf,false); WindowWidget.AddWidget(&DuneLegacy, Point((screen->w - surf->w)/2, screen->h/2 + 28), Point(surf->w,surf->h)); surf = pGFXManager->getUIGraphic(UI_MenuButtonBorder); ButtonBorder.SetSurface(surf,false); WindowWidget.AddWidget(&ButtonBorder, Point((screen->w - surf->w)/2, screen->h/2 + 59), Point(surf->w,surf->h)); // set up menu buttons WindowWidget.AddWidget(&MenuButtons,Point((screen->w - 160)/2,screen->h/2 + 64), Point(160,111)); Button_SinglePlayer.SetText(pTextManager->getLocalized("SINGLE PLAYER")); Button_SinglePlayer.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&MainMenu::OnSinglePlayer))); MenuButtons.AddWidget(&Button_SinglePlayer); Button_SinglePlayer.SetActive(); MenuButtons.AddWidget(VSpacer::Create(3)); MenuButtons.AddWidget(VSpacer::Create(18)); /* Button_MultiPlayer.SetText("MULTIPLAYER"); Button_MultiPlayer.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&MainMenu::OnMultiPlayer))); Button_MultiPlayer.SetEnabled(false); MenuButtons.AddWidget(&Button_MultiPlayer); */ MenuButtons.AddWidget(VSpacer::Create(3)); MenuButtons.AddWidget(VSpacer::Create(12)); /* Button_MapEditor.SetText("MAP EDITOR"); Button_MapEditor.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&MainMenu::OnMapEditor))); MenuButtons.AddWidget(&Button_MapEditor); */ MenuButtons.AddWidget(VSpacer::Create(3)); Button_Options.SetText(pTextManager->getLocalized("OPTIONS")); Button_Options.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&MainMenu::OnOptions))); MenuButtons.AddWidget(&Button_Options); MenuButtons.AddWidget(VSpacer::Create(3)); Button_About.SetText(pTextManager->getLocalized("ABOUT")); Button_About.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&MainMenu::OnAbout))); MenuButtons.AddWidget(&Button_About); MenuButtons.AddWidget(VSpacer::Create(3)); Button_Quit.SetText(pTextManager->getLocalized("QUIT")); Button_Quit.SetOnClickMethod(MethodPointer(this,(WidgetCallbackWithNoParameter) (&MainMenu::OnQuit))); MenuButtons.AddWidget(&Button_Quit); }