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);
}
예제 #3
0
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;
  }
예제 #4
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);
}