1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
// // Copyright (C) 2019 Robert Gill <locke@sdf.org> // // This file is a part of newt-rs. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License version 2.1 as published by the Free Software Foundation. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // use std::cell::Cell; use std::ffi::CString; use newt_sys::*; use crate::component::Component; /// /// A simple widget for displaying static text. /// #[derive(Component)] pub struct Label { co: Cell<newtComponent>, added_to_parent: Cell<bool> } impl Label { pub fn new(left: i32, top: i32, text: &str) -> Label { let c_text = CString::new(text).unwrap(); Label { co: unsafe { let co = newtLabel(left, top, c_text.as_ptr()); Cell::new(co) }, added_to_parent: Cell::new(false) } } pub fn set_text(&self, text: &str) { let c_text = CString::new(text).unwrap(); unsafe { newtLabelSetText(self.co(), c_text.as_ptr()); } } pub fn set_colors(&self, colorset: i32) { unsafe { newtLabelSetColors(self.co(), colorset); } } }