Struct Widget
pub struct Widget { /* private fields */ }
Available on crate feature
dep_fltk
only.Expand description
An empty widget. Instantiating a Widget requires that you at least add a draw callback for it to show anything
use fltk::{prelude::*, *};
fn main() {
let a = app::App::default();
let mut win = window::Window::default();
let mut wid = widget::Widget::default();
win.end();
win.show();
wid.draw(|w| {
draw::draw_box(w.frame(), w.x(), w.y(), w.w(), w.h(), w.color());
draw::set_draw_color(enums::Color::Black); // for the text
draw::set_font(enums::Font::Helvetica, app::font_size());
draw::draw_text2(&w.label(), w.x(), w.y(), w.w(), w.h(), w.align());
});
a.run().unwrap();
}
Trait Implementations§
§impl WidgetBase for Widget
impl WidgetBase for Widget
§fn new<'a, T>(x: i32, y: i32, width: i32, height: i32, title: T) -> Widget
fn new<'a, T>(x: i32, y: i32, width: i32, height: i32, title: T) -> Widget
Creates a new widget, takes an x, y coordinates, as well as a width and height, plus a title Read more
§fn default_fill() -> Widget
fn default_fill() -> Widget
Constructs a widget with the size of its parent
§unsafe fn from_widget_ptr(ptr: *mut Fl_Widget) -> Widget
unsafe fn from_widget_ptr(ptr: *mut Fl_Widget) -> Widget
transforms a widget pointer to a Widget, for internal use Read more
§unsafe fn from_widget<W>(w: W) -> Widgetwhere
W: WidgetExt,
unsafe fn from_widget<W>(w: W) -> Widgetwhere
W: WidgetExt,
Get a widget from base widget Read more
§fn handle<F>(&mut self, cb: F)
fn handle<F>(&mut self, cb: F)
Set a custom handler, where events are managed manually, akin to
Fl_Widget::handle(int)
.
Handled or ignored events should return true, unhandled events should return false.
takes the widget as a closure argument.
The ability to handle an event might depend on handling other events, as explained here§fn draw<F>(&mut self, cb: F)
fn draw<F>(&mut self, cb: F)
Set a custom draw method.
takes the widget as a closure argument.
macOS requires that
WidgetBase::draw
actually calls drawing functions§fn resize_callback<F>(&mut self, cb: F)
fn resize_callback<F>(&mut self, cb: F)
Perform a callback on resize.
Avoid resizing the parent or the same widget to avoid infinite recursion
§unsafe fn assume_derived(&mut self)
unsafe fn assume_derived(&mut self)
Makes the widget derived Read more
§impl WidgetExt for Widget
impl WidgetExt for Widget
§fn with_label(self, title: &str) -> Widget
fn with_label(self, title: &str) -> Widget
Initialize with a label
§fn with_align(self, align: Align) -> Widget
fn with_align(self, align: Align) -> Widget
Initialize with alignment
§fn with_type<T>(self, typ: T) -> Widgetwhere
T: WidgetType,
fn with_type<T>(self, typ: T) -> Widgetwhere
T: WidgetType,
Initialize with type
§fn below_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
fn below_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
Initialize at bottom of another widget
§fn above_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
fn above_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
Initialize above of another widget
§fn right_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
fn right_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
Initialize right of another widget
§fn left_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
fn left_of<W>(self, wid: &W, padding: i32) -> Widgetwhere
W: WidgetExt,
Initialize left of another widget
§fn center_of_parent(self) -> Widget
fn center_of_parent(self) -> Widget
Initialize center of parent
§fn size_of_parent(self) -> Widget
fn size_of_parent(self) -> Widget
Initialize to the size of the parent
§fn set_label(&mut self, title: &str)
fn set_label(&mut self, title: &str)
Sets the widget’s label.
labels support special symbols preceded by an
@
sign.
and for the associated formatting.§fn measure_label(&self) -> (i32, i32) ⓘ
fn measure_label(&self) -> (i32, i32) ⓘ
Measures the label’s width and height
§fn as_widget_ptr(&self) -> *mut Fl_Widget
fn as_widget_ptr(&self) -> *mut Fl_Widget
transforms a widget to a base
Fl_Widget
, for internal use§fn deactivate(&mut self)
fn deactivate(&mut self)
Deactivates the widget
§fn redraw_label(&mut self)
fn redraw_label(&mut self)
Redraws the label of the widget
§fn resize(&mut self, x: i32, y: i32, width: i32, height: i32)
fn resize(&mut self, x: i32, y: i32, width: i32, height: i32)
Resizes and/or moves the widget, takes x, y, width and height
§fn widget_resize(&mut self, x: i32, y: i32, width: i32, height: i32)
fn widget_resize(&mut self, x: i32, y: i32, width: i32, height: i32)
Does a simple resize ignoring class-specific resize functionality
§fn set_tooltip(&mut self, txt: &str)
fn set_tooltip(&mut self, txt: &str)
Sets the tooltip text
§fn label_color(&self) -> Color
fn label_color(&self) -> Color
Returns the widget label’s color
§fn set_label_color(&mut self, color: Color)
fn set_label_color(&mut self, color: Color)
Sets the widget label’s color
§fn label_font(&self) -> Font
fn label_font(&self) -> Font
Returns the widget label’s font
§fn set_label_font(&mut self, font: Font)
fn set_label_font(&mut self, font: Font)
Sets the widget label’s font
§fn label_size(&self) -> i32
fn label_size(&self) -> i32
Returns the widget label’s size
§fn set_label_size(&mut self, sz: i32)
fn set_label_size(&mut self, sz: i32)
Sets the widget label’s size
§fn label_type(&self) -> LabelType
fn label_type(&self) -> LabelType
Returns the widget label’s type
§fn set_label_type(&mut self, typ: LabelType)
fn set_label_type(&mut self, typ: LabelType)
Sets the widget label’s type
§fn set_changed(&mut self)
fn set_changed(&mut self)
Mark the widget as changed
§fn clear_changed(&mut self)
fn clear_changed(&mut self)
Clears the changed status of the widget
§fn set_trigger(&mut self, trigger: CallbackTrigger)
fn set_trigger(&mut self, trigger: CallbackTrigger)
Sets the default callback trigger for a widget, equivalent to
when()
§fn trigger(&self) -> CallbackTrigger
fn trigger(&self) -> CallbackTrigger
Return the callback trigger, equivalent to
when()
§fn selection_color(&self) -> Color
fn selection_color(&self) -> Color
Gets the selection color of the widget
§fn set_selection_color(&mut self, color: Color)
fn set_selection_color(&mut self, color: Color)
Sets the selection color of the widget
§fn do_callback(&mut self)
fn do_callback(&mut self)
Runs the already registered callback
§fn takes_events(&self) -> bool
fn takes_events(&self) -> bool
Checks whether a widget is capable of taking events
§fn set_visible_focus(&mut self)
fn set_visible_focus(&mut self)
Set the widget to have visible focus
§fn clear_visible_focus(&mut self)
fn clear_visible_focus(&mut self)
Clear visible focus
§fn visible_focus(&mut self, v: bool)
fn visible_focus(&mut self, v: bool)
Set the visible focus using a flag
§fn has_visible_focus(&self) -> bool
fn has_visible_focus(&self) -> bool
Return whether the widget has visible focus
§fn was_deleted(&self) -> bool
fn was_deleted(&self) -> bool
Check if a widget was deleted
§fn set_damage(&mut self, flag: bool)
fn set_damage(&mut self, flag: bool)
Signal the widget as damaged and it should be redrawn in the next event loop cycle
§fn damage_type(&self) -> Damage
fn damage_type(&self) -> Damage
Return the damage mask
§fn set_damage_type(&mut self, mask: Damage)
fn set_damage_type(&mut self, mask: Damage)
Signal the type of damage a widget received
§fn set_damage_area(&mut self, mask: Damage, x: i32, y: i32, w: i32, h: i32)
fn set_damage_area(&mut self, mask: Damage, x: i32, y: i32, w: i32, h: i32)
Signal damage for an area inside the widget
§fn clear_damage(&mut self)
fn clear_damage(&mut self)
Clear the damaged flag
§fn inside<W>(&self, wid: &W) -> boolwhere
W: WidgetExt,
fn inside<W>(&self, wid: &W) -> boolwhere
W: WidgetExt,
Checks whether the self widget is inside another widget
§fn get_type<T>(&self) -> Twhere
T: WidgetType,
fn get_type<T>(&self) -> Twhere
T: WidgetType,
Returns the widget type when applicable
§fn set_type<T>(&mut self, typ: T)where
T: WidgetType,
fn set_type<T>(&mut self, typ: T)where
T: WidgetType,
Sets the widget type
§fn set_image_scaled<I>(&mut self, image: Option<I>)where
I: ImageExt,
fn set_image_scaled<I>(&mut self, image: Option<I>)where
I: ImageExt,
Sets the image of the widget scaled to the widget’s size
§unsafe fn image_mut(&self) -> Option<&mut Image> ⓘ
unsafe fn image_mut(&self) -> Option<&mut Image> ⓘ
Get a reference type of the widget’s image Read more
§fn set_deimage<I>(&mut self, image: Option<I>)where
I: ImageExt,
fn set_deimage<I>(&mut self, image: Option<I>)where
I: ImageExt,
Sets the deactivated image of the widget
§fn set_deimage_scaled<I>(&mut self, image: Option<I>)where
I: ImageExt,
fn set_deimage_scaled<I>(&mut self, image: Option<I>)where
I: ImageExt,
Sets the deactivated image of the widget scaled to the widget’s size
§fn deimage(&self) -> Option<Box<dyn ImageExt>> ⓘ
fn deimage(&self) -> Option<Box<dyn ImageExt>> ⓘ
Gets the deactivated image associated with the widget
§unsafe fn deimage_mut(&self) -> Option<&mut Image> ⓘ
unsafe fn deimage_mut(&self) -> Option<&mut Image> ⓘ
Get a reference type of the widget’s deactivated image Read more
§fn set_callback<F>(&mut self, cb: F)
fn set_callback<F>(&mut self, cb: F)
Sets the callback when the widget is triggered (clicks for example)
takes the widget as a closure argument
§unsafe fn into_widget<W>(&self) -> Wwhere
W: WidgetBase,
unsafe fn into_widget<W>(&self) -> Wwhere
W: WidgetBase,
Upcast a
WidgetExt
to some widget type Read more§fn visible_r(&self) -> bool
fn visible_r(&self) -> bool
Returns whether a widget or any of its parents are visible (recursively)
§fn is_same<W>(&self, other: &W) -> boolwhere
W: WidgetExt,
fn is_same<W>(&self, other: &W) -> boolwhere
W: WidgetExt,
Return whether two widgets object point to the same widget
§fn handle_event(&mut self, event: Event) -> bool
fn handle_event(&mut self, event: Event) -> bool
Handle a specific event
§fn is_derived(&self) -> bool
fn is_derived(&self) -> bool
Check whether a widget is derived
§fn as_base_widget(&self) -> Widgetwhere
Self: Sized,
fn as_base_widget(&self) -> Widgetwhere
Self: Sized,
Upcast a
WidgetExt
to a Widgetimpl Eq for Widget
impl Send for Widget
impl Sync for Widget
Auto Trait Implementations§
impl Freeze for Widget
impl RefUnwindSafe for Widget
impl Unpin for Widget
impl UnwindSafe for Widget
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
The alignment of this type in bytes.
Source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Returns the alignment of this type in bytes.
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
Returns a deterministic hash of the
TypeId
of Self
using a custom hasher.Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Know whether dropping values of this type matters, in compile-time.
Source§fn mem_align_of<T>() -> usize
fn mem_align_of<T>() -> usize
Returns the minimum alignment of the type in bytes. Read more
Source§fn mem_align_of_val(&self) -> usize
fn mem_align_of_val(&self) -> usize
Returns the alignment of the pointed-to value in bytes. Read more
Source§fn mem_size_of<T>() -> usize
fn mem_size_of<T>() -> usize
Returns the size of a type in bytes. Read more
Source§fn mem_size_of_val(&self) -> usize
fn mem_size_of_val(&self) -> usize
Returns the size of the pointed-to value in bytes. Read more
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
Returns
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
Forgets about
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
Available on crate feature
unsafe_layout
only.Returns the value of type
T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
Available on crate feature
unsafe_layout
only.Returns the value of type
T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
Available on crate feature
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more