FreeRDP
Loading...
Searching...
No Matches
SdlButton Class Reference
Inheritance diagram for SdlButton:
Collaboration diagram for SdlButton:

Public Member Functions

 SdlButton (SDL_Renderer *renderer, std::string label, int id, SDL_Rect rect)
 
 SdlButton (const SdlButton &other)=delete
 
 SdlButton (SdlButton &&other) noexcept
 
SdlButtonoperator= (const SdlButton &other)=delete
 
SdlButtonoperator= (SdlButton &&other)=delete
 
bool highlight (SDL_Renderer *renderer)
 
bool mouseover (SDL_Renderer *renderer)
 
bool update (SDL_Renderer *renderer)
 
int id () const
 
 SdlButton (std::shared_ptr< SDL_Renderer > &renderer, const std::string &label, int id, const SDL_FRect &rect)
 
 SdlButton (SdlButton &&other) noexcept
 
 SdlButton (const SdlButton &other)=delete
 
SdlButtonoperator= (const SdlButton &other)=delete
 
SdlButtonoperator= (SdlButton &&other)=delete
 
int id () const
 
- Public Member Functions inherited from SdlWidget
 SdlWidget (SDL_Renderer *renderer, SDL_Rect rect, bool input)
 
 SdlWidget (SdlWidget &&other) noexcept
 
bool fill (SDL_Renderer *renderer, SDL_Color color)
 
bool fill (SDL_Renderer *renderer, const std::vector< SDL_Color > &colors)
 
bool update_text (SDL_Renderer *renderer, const std::string &text, SDL_Color fgcolor)
 
bool update_text (SDL_Renderer *renderer, const std::string &text, SDL_Color fgcolor, SDL_Color bgcolor)
 
bool wrap () const
 
bool set_wrap (bool wrap=true, size_t width=0)
 
const SDL_Rect & rect () const
 
 SdlWidget (const SdlWidget &other)=delete
 
SdlWidgetoperator= (const SdlWidget &other)=delete
 
SdlWidgetoperator= (SdlWidget &&other)=delete
 
 SdlWidget (std::shared_ptr< SDL_Renderer > &renderer, const SDL_FRect &rect)
 
 SdlWidget (const SdlWidget &other)=delete
 
 SdlWidget (SdlWidget &&other) noexcept
 
SdlWidgetoperator= (const SdlWidget &other)=delete
 
SdlWidgetoperator= (SdlWidget &&other)=delete
 
bool fill (SDL_Color color) const
 
bool fill (const std::vector< SDL_Color > &colors) const
 
bool update_text (const std::string &text)
 
bool wrap () const
 
bool set_wrap (bool wrap=true, size_t width=0)
 
const SDL_FRect & rect () const
 
bool update ()
 
- Public Member Functions inherited from SdlSelectableWidget
 SdlSelectableWidget (std::shared_ptr< SDL_Renderer > &renderer, const SDL_FRect &rect)
 
 SdlSelectableWidget (SdlSelectableWidget &&other) noexcept
 
 SdlSelectableWidget (const SdlSelectableWidget &other)=delete
 
SdlSelectableWidgetoperator= (const SdlSelectableWidget &other)=delete
 
SdlSelectableWidgetoperator= (SdlSelectableWidget &&other)=delete
 
bool highlight (bool enable)
 
bool mouseover (bool enable)
 

Additional Inherited Members

- Static Public Member Functions inherited from SdlWidget
static bool error_ex (Sint32 res, const char *what, const char *file, size_t line, const char *fkt)
 
static bool error_ex (bool success, const char *what, const char *file, size_t line, const char *fkt)
 
- Protected Member Functions inherited from SdlWidget
virtual bool clear () const
 
- Protected Member Functions inherited from SdlSelectableWidget
bool updateInternal () override
 
- Protected Attributes inherited from SdlWidget
std::shared_ptr< SDL_Renderer > _renderer {}
 
SDL_Color _backgroundcolor = { 0x56, 0x56, 0x56, 0xff }
 
SDL_Color _fontcolor = { 0xd1, 0xcf, 0xcd, 0xff }
 
std::string _text
 
- Protected Attributes inherited from SdlSelectableWidget
SDL_Color _highlightcolor = { 0xcd, 0xca, 0x35, 0x60 }
 
SDL_Color _mouseovercolor = { 0x66, 0xff, 0x66, 0x60 }
 

Detailed Description

Definition at line 7 of file SDL2/dialogs/sdl_button.hpp.

Constructor & Destructor Documentation

◆ SdlButton() [1/2]

SdlButton::SdlButton ( SDL_Renderer *  renderer,
std::string  label,
int  id,
SDL_Rect  rect 
)

Definition at line 31 of file SDL2/dialogs/sdl_button.cpp.

32 : SdlWidget(renderer, rect, false), _name(std::move(label)), _id(id)
33{
34 assert(renderer);
35
36 update_text(renderer, _name, buttonfontcolor, buttonbackgroundcolor);
37}

◆ SdlButton() [2/2]

SdlButton::SdlButton ( std::shared_ptr< SDL_Renderer > &  renderer,
const std::string &  label,
int  id,
const SDL_FRect &  rect 
)

FreeRDP: A Remote Desktop Protocol Implementation SDL Client Channels

Copyright 2023 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m Copyright 2023 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition at line 26 of file SDL3/dialogs/sdl_button.cpp.

28 : SdlSelectableWidget(renderer, rect), _id(id)
29{
30 _backgroundcolor = { 0x69, 0x66, 0x63, 0xff };
31 _highlightcolor = { 0xcd, 0xca, 0x35, 0x60 };
32 _mouseovercolor = { 0x66, 0xff, 0x66, 0x60 };
33 _fontcolor = { 0xd1, 0xcf, 0xcd, 0xff };
34 update_text(label);
35 update();
36}

Member Function Documentation

◆ highlight()

bool SdlButton::highlight ( SDL_Renderer *  renderer)

Definition at line 43 of file SDL2/dialogs/sdl_button.cpp.

44{
45 assert(renderer);
46
47 std::vector<SDL_Color> colors = { buttonbackgroundcolor, buttonhighlightcolor };
48 if (!fill(renderer, colors))
49 return false;
50 return update_text(renderer, _name, buttonfontcolor);
51}

◆ id()

int SdlButton::id ( ) const

Definition at line 68 of file SDL2/dialogs/sdl_button.cpp.

69{
70 return _id;
71}

◆ mouseover()

bool SdlButton::mouseover ( SDL_Renderer *  renderer)

Definition at line 53 of file SDL2/dialogs/sdl_button.cpp.

54{
55 std::vector<SDL_Color> colors = { buttonbackgroundcolor, buttonmouseovercolor };
56 if (!fill(renderer, colors))
57 return false;
58 return update_text(renderer, _name, buttonfontcolor);
59}

◆ update()

bool SdlButton::update ( SDL_Renderer *  renderer)

Definition at line 61 of file SDL2/dialogs/sdl_button.cpp.

62{
63 assert(renderer);
64
65 return update_text(renderer, _name, buttonfontcolor, buttonbackgroundcolor);
66}

The documentation for this class was generated from the following files: