mirror of
https://github.com/kevinbentley/Descent3.git
synced 2026-05-20 12:00:07 -04:00
Initial import
This commit is contained in:
204
ui/UIStatic.cpp
Normal file
204
ui/UIStatic.cpp
Normal file
@@ -0,0 +1,204 @@
|
||||
/*
|
||||
* $Logfile: /DescentIII/Main/ui/UIStatic.cpp $
|
||||
* $Revision: 12 $
|
||||
* $Date: 4/14/99 1:53a $
|
||||
* $Author: Jeff $
|
||||
*
|
||||
* Static text
|
||||
*
|
||||
* $Log: /DescentIII/Main/ui/UIStatic.cpp $
|
||||
*
|
||||
* 12 4/14/99 1:53a Jeff
|
||||
* fixed case mismatched #includes
|
||||
*
|
||||
* 11 1/02/99 6:46p Matt
|
||||
* Fixed compile warning
|
||||
*
|
||||
* 10 12/30/98 12:16p Kevin
|
||||
* Auto Mission Download system
|
||||
*
|
||||
* 9 10/01/98 12:57p Samir
|
||||
* fixed hotspots so their width and height touch text, no outer border.
|
||||
*
|
||||
* 8 8/31/98 12:37p Samir
|
||||
* disable all static controls.
|
||||
*
|
||||
* 7 6/05/98 5:36p Samir
|
||||
* disable static items by default, so they don't mess up keyboard focus.
|
||||
*
|
||||
* 6 2/13/98 6:34p Samir
|
||||
* Added UIStatic class.
|
||||
*
|
||||
* 5 1/30/98 7:07p Samir
|
||||
* Changes to gadget system.
|
||||
*
|
||||
* 4 1/18/98 4:22p Samir
|
||||
* Implemented new UIItem system.
|
||||
*
|
||||
* 3 1/08/98 12:18p Samir
|
||||
* Static control size is always calculated.
|
||||
*
|
||||
* 2 1/05/98 4:36p Samir
|
||||
* Moved centering and fittext control flags to UIGadget class.
|
||||
*
|
||||
* 1 1/02/98 12:49p Samir
|
||||
* Initial revision.
|
||||
*
|
||||
*
|
||||
* $NoKeywords: $
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "UIlib.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// UIText
|
||||
// This is a simple text.
|
||||
|
||||
|
||||
void UIText::Create(UIWindow *parent, UITextItem *text, int x, int y, int flags)
|
||||
{
|
||||
UIStatic::Create(parent, text, x,y,1,1, flags);
|
||||
}
|
||||
|
||||
|
||||
// inheritable operations
|
||||
// override: called when resized or before drawing.
|
||||
void UIText::OnFormat()
|
||||
{
|
||||
m_W = m_Title->width();
|
||||
m_H = m_Title->height();
|
||||
|
||||
UIGadget::OnFormat();
|
||||
}
|
||||
|
||||
|
||||
|
||||
UIStatic::UIStatic()
|
||||
{
|
||||
m_Title = NULL;
|
||||
m_Background = NULL;
|
||||
}
|
||||
|
||||
|
||||
UIStatic::~UIStatic()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void UIStatic::Create(UIWindow *parent, UIItem *item, int x, int y, int w, int h, int flags)
|
||||
{
|
||||
m_Background = NULL;
|
||||
if (item)
|
||||
m_Title = item->CopyUIItem();
|
||||
else
|
||||
m_Title = NULL;
|
||||
UIGadget::Create(parent, -1, x, y, w, h, flags);
|
||||
UIGadget::Disable();
|
||||
}
|
||||
|
||||
|
||||
void UIStatic::SetBackground(UIPrimativeItem *item)
|
||||
{
|
||||
if (m_Background)
|
||||
delete m_Background;
|
||||
m_Background = NULL;
|
||||
if (item)
|
||||
m_Background = (UIPrimativeItem *)item->CopyUIItem();
|
||||
}
|
||||
|
||||
|
||||
void UIStatic::SetTitle(UIItem *item)
|
||||
{
|
||||
if (m_Title)
|
||||
delete m_Title;
|
||||
m_Title = NULL;
|
||||
if (item)
|
||||
m_Title = (UIPrimativeItem *)item->CopyUIItem();
|
||||
}
|
||||
|
||||
|
||||
void UIStatic::OnDraw()
|
||||
{
|
||||
if (m_Flags & UIF_BORDER)
|
||||
ui_DrawBox(GR_WHITE, 0,0,m_W, m_H);
|
||||
|
||||
if (m_Background)
|
||||
m_Background->draw(0,0,m_W, m_H);
|
||||
if (m_Title) {
|
||||
// int y = (m_H/2 - m_Title->height()/2);
|
||||
// int x = (m_W/2 - m_Title->width()/2);
|
||||
m_Title->draw(0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UIStatic::OnFormat()
|
||||
{
|
||||
if (m_Flags & UIF_FIT) {
|
||||
if (m_Title) {
|
||||
m_W = m_Title->width();
|
||||
m_H = m_Title->height();
|
||||
}
|
||||
else {
|
||||
m_W = 10;
|
||||
m_H = 10;
|
||||
}
|
||||
}
|
||||
|
||||
UIGadget::OnFormat();
|
||||
}
|
||||
|
||||
|
||||
// called when gadget is being nuked.
|
||||
void UIStatic::OnDestroy()
|
||||
{
|
||||
if (m_Title)
|
||||
delete m_Title;
|
||||
if (m_Background)
|
||||
delete m_Background;
|
||||
|
||||
m_Title = NULL;
|
||||
m_Background = NULL;
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// UIProgress
|
||||
// This is a simple text.
|
||||
|
||||
|
||||
void UIProgress::Create(UIWindow *parent, int x, int y, int w, int h, int flags)
|
||||
{
|
||||
m_W = w;
|
||||
m_H = h;
|
||||
m_ProgressWidth = 0;
|
||||
UIStatic::Create(parent, NULL, x,y,w,h, flags);
|
||||
}
|
||||
|
||||
|
||||
// inheritable operations
|
||||
// override: called when resized or before drawing.
|
||||
void UIProgress::OnFormat()
|
||||
{
|
||||
UIGadget::OnFormat();
|
||||
}
|
||||
|
||||
void UIProgress::Update(float progress)
|
||||
{
|
||||
m_Progress = progress;
|
||||
m_ProgressWidth = ((int)((m_W-2)*m_Progress));
|
||||
}
|
||||
|
||||
void UIProgress::OnDraw()
|
||||
{
|
||||
//Take the x & y & w/h & progress to draw the progress bar
|
||||
ui_DrawBox(GR_WHITE, 0, 0, m_W, m_H);
|
||||
ui_DrawBox(GR_WHITE, 1, 1, m_W-1, m_H-1);
|
||||
ui_DrawRect(GR_LIGHTGRAY, 2, 2,m_ProgressWidth,m_H-2);
|
||||
}
|
||||
Reference in New Issue
Block a user