Prepared UIHorizScroll for implementation

This commit is contained in:
smallmodel 2024-01-01 15:01:23 +01:00
parent c2c3f6aa1b
commit ef50a5f2cd
No known key found for this signature in database
GPG key ID: A96F163ED4891440
2 changed files with 126 additions and 184 deletions

View file

@ -22,209 +22,146 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "ui_local.h"
CLASS_DECLARATION( UIWidget, UIHorizScroll, NULL )
{
{ NULL, NULL }
Event W_HScrollbar_Positioned
(
"hscrollbar_positioned",
EV_DEFAULT,
"i",
"new_position",
"Signaled when the user scrolls the view"
);
Event EV_HScrollbar_Scroll
(
"_hscrollbar_scroll",
EV_DEFAULT,
"ii",
"scrollrate autorepeat",
"scroll the scrollbar, at the specified rate.\n"
"The autorepeat is used for autoscrolling with the mouse button held down"
);
CLASS_DECLARATION(UIWidget, UIHorizScroll, NULL) {
{&W_LeftMouseDown, &UIHorizScroll::MouseDown },
{&W_LeftMouseUp, &UIHorizScroll::MouseUp },
{&W_LeftMouseDragged, &UIHorizScroll::MouseDragged},
{&W_MouseEntered, &UIHorizScroll::MouseEnter },
{&W_MouseExited, &UIHorizScroll::MouseLeave },
{&EV_HScrollbar_Scroll, &UIHorizScroll::Scroll },
{NULL, NULL }
};
UIHorizScroll::UIHorizScroll()
{
// FIXME: stub
// FIXME: stub
}
int UIHorizScroll::getItemFromWidth
(
float height
)
void UIHorizScroll::DrawArrow(float top, const char *text, bool pressed)
{
// FIXME: stub
return 0;
// FIXME: stub
}
bool UIHorizScroll::isEnoughItems
(
void
)
void UIHorizScroll::DrawThumb(void)
{
// FIXME: stub
return false;
// FIXME: stub
}
void UIHorizScroll::Draw
(
void
)
void UIHorizScroll::Draw(void)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::DrawArrow
(
float top,
const char *text,
bool pressed
)
void UIHorizScroll::Scroll(Event *ev)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::DrawThumb
(
void
)
bool UIHorizScroll::AttemptScrollTo(int to)
{
// FIXME: stub
// FIXME: stub
return false;
}
void UIHorizScroll::MouseDown
(
Event *ev
)
void UIHorizScroll::MouseDown(Event *ev)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::MouseUp
(
Event *ev
)
int UIHorizScroll::getItemFromWidth(float height)
{
// FIXME: stub
// FIXME: stub
return 0;
}
void UIHorizScroll::MouseDragged
(
Event *ev
)
void UIHorizScroll::MouseUp(Event *ev)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::MouseEnter
(
Event *ev
)
void UIHorizScroll::MouseDragged(Event *ev)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::MouseLeave
(
Event *ev
)
void UIHorizScroll::InitFrameAlignRight(UIWidget *parent)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::Scroll
(
Event *ev
)
void UIHorizScroll::MouseEnter(Event *ev)
{
// FIXME: stub
// FIXME: stub
}
bool UIHorizScroll::AttemptScrollTo
(
int to
)
void UIHorizScroll::MouseLeave(Event *ev)
{
// FIXME: stub
return false;
// FIXME: stub
}
void UIHorizScroll::setNumItems
(
int i
)
bool UIHorizScroll::isEnoughItems(void)
{
// FIXME: stub
// FIXME: stub
return false;
}
void UIHorizScroll::setPageWidth
(
int i
)
void UIHorizScroll::setNumItems(int i)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::setTopItem
(
int i
)
void UIHorizScroll::setPageWidth(int i)
{
// FIXME: stub
// FIXME: stub
}
int UIHorizScroll::getTopItem
(
void
)
void UIHorizScroll::setTopItem(int i)
{
// FIXME: stub
return 0;
// FIXME: stub
}
int UIHorizScroll::getPageWidth
(
void
)
int UIHorizScroll::getTopItem(void)
{
// FIXME: stub
return 0;
// FIXME: stub
return 0;
}
int UIHorizScroll::getNumItems
(
void
)
int UIHorizScroll::getPageWidth(void)
{
// FIXME: stub
return 0;
// FIXME: stub
return 0;
}
void UIHorizScroll::setThumbColor
(
const UColor& thumb
)
int UIHorizScroll::getNumItems(void)
{
// FIXME: stub
// FIXME: stub
return 0;
}
void UIHorizScroll::setSolidBorderColor
(
const UColor& col
)
void UIHorizScroll::setThumbColor(const UColor& thumb)
{
// FIXME: stub
// FIXME: stub
}
void UIHorizScroll::InitFrameAlignRight
(
UIWidget *parent
)
void UIHorizScroll::setSolidBorderColor(const UColor& col)
{
// FIXME: stub
// FIXME: stub
}

View file

@ -20,58 +20,63 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
#ifndef __UIHORIZSCROLL_H__
#define __UIHORIZSCROLL_H__
#pragma once
typedef enum { VS_NONE, VS_UP_ARROW, VS_DOWN_ARROW, VS_THUMB, VS_PAGE_DOWN, VS_PAGE_UP } whatspressed;
typedef enum {
VS_NONE,
VS_UP_ARROW,
VS_DOWN_ARROW,
VS_THUMB,
VS_PAGE_DOWN,
VS_PAGE_UP
} whatspressed;
class UIHorizScroll : public UIWidget {
class UIHorizScroll : public UIWidget
{
protected:
int m_numitems;
int m_pagewidth;
int m_topitem;
UIFont m_marlett;
whatspressed m_pressed;
UIRect2D thumbRect;
int m_numitems;
int m_pagewidth;
int m_topitem;
UIFont m_marlett;
whatspressed m_pressed;
UIRect2D thumbRect;
struct {
int itemOffset;
int orgItem;
} m_dragThumbState;
struct {
int itemOffset;
int orgItem;
} m_dragThumbState;
bool m_frameinitted;
UColor m_thumbcolor;
UColor m_solidbordercolor;
public:
CLASS_PROTOTYPE( UIHorizScroll );
protected:
int getItemFromWidth( float height );
bool isEnoughItems( void );
bool m_frameinitted;
UColor m_thumbcolor;
UColor m_solidbordercolor;
public:
UIHorizScroll();
CLASS_PROTOTYPE(UIHorizScroll);
void Draw( void ) override;
void DrawArrow( float top, const char *text, bool pressed );
void DrawThumb();
void MouseDown( Event *ev );
void MouseUp( Event *ev );
void MouseDragged( Event *ev );
void MouseEnter( Event *ev );
void MouseLeave( Event *ev );
void Scroll( Event *ev );
bool AttemptScrollTo( int to );
void setNumItems( int i );
void setPageWidth( int i );
void setTopItem( int i );
int getTopItem( void );
int getPageWidth( void );
int getNumItems( void );
void setThumbColor( const UColor& thumb );
void setSolidBorderColor( const UColor& col );
void InitFrameAlignRight( UIWidget *parent );
protected:
int getItemFromWidth(float height);
bool isEnoughItems(void);
public:
UIHorizScroll();
void Draw(void) override;
void DrawArrow(float top, const char *text, bool pressed);
void DrawThumb();
void MouseDown(Event *ev);
void MouseUp(Event *ev);
void MouseDragged(Event *ev);
void MouseEnter(Event *ev);
void MouseLeave(Event *ev);
void Scroll(Event *ev);
bool AttemptScrollTo(int to);
void setNumItems(int i);
void setPageWidth(int i);
void setTopItem(int i);
int getTopItem(void);
int getPageWidth(void);
int getNumItems(void);
void setThumbColor(const UColor& thumb);
void setSolidBorderColor(const UColor& col);
void InitFrameAlignRight(UIWidget *parent);
};
#endif