YaST2 Developers Documentation: YCP UI Reference: Widgets



YCP UI Widget Reference

Back to the widget index

ColoredLabel Simple static text with specified background and foreground color

Description

Very much the same as a `Label except you specify foreground and background colors and margins. This widget is only available on graphical UIs with at least 15 bit color depth ( 32767 colors ).

Note: This is a "special" widget, i.e. not all UIs necessarily support it. Check for availability with HasSpecialWidget( `ColoredLabel ) before using it.

Arguments

string label
color foreground color
color background color
integer margin around the widget in pixels

Special Properties

string Value the label text

Sample Usage

`ColoredLabel( "Hello, World!", `rgb( 255, 0, 255 ), `rgb( 0, 128, 0 ), 20 )

Examples

Example 1: ColoredLabel1.ycp


{
    if ( ! UI::HasSpecialWidget(`ColoredLabel) )
    {
	UI::OpenDialog(
		   `VBox( 
			 `Label("Error: This UI doesn't support the ColoredLabel widget!"),
			 `PushButton(`opt(`default), "&OK")
			 )
		   );
	UI::UserInput();
	UI::CloseDialog();
	
	return;
    }
    
    UI::OpenDialog(
	       `VBox(
		     `ColoredLabel( "Hello, blue world!",
				    `rgb(255, 255, 255 ),	// foreground
				    `rgb(  0,   0, 200 ),	// background
				    30 ),
		     `PushButton(`opt(`default), "&OK")
		     )
	       );
    UI::UserInput();
    UI::CloseDialog();
}
		

Example 2: ColoredLabel2.ycp


{
    if ( ! UI::HasSpecialWidget(`ColoredLabel) )
    {
	UI::OpenDialog(
		   `VBox( 
			 `Label("Error: This UI doesn't support the ColoredLabel widget!"),
			 `PushButton(`opt(`default), "&OK")
			 )
		   );
	UI::UserInput();
	UI::CloseDialog();
	
	return;
    }
    
    UI::OpenDialog(
	       `VBox(
		     `ColoredLabel( `opt(`hstretch), "red"  , `rgb( 255,  0,    0 ), `rgb( 80, 80, 80 ), 10 ),
		     `ColoredLabel( `opt(`hstretch), "green", `rgb(   0, 255,   0 ), `rgb( 80, 80, 80 ), 10 ),
		     `ColoredLabel( `opt(`hstretch), "blue" , `rgb(   0,   0, 255 ), `rgb( 80, 80, 80 ), 10 ),
		     `VSpacing(),							
		     `ColoredLabel( `opt(`hstretch), "red"  , `rgb( 80, 80, 80 ), `rgb( 255,   0,   0 ), 10 ),
		     `ColoredLabel( `opt(`hstretch), "green", `rgb( 80, 80, 80 ), `rgb(   0, 255,   0 ), 10 ),
		     `ColoredLabel( `opt(`hstretch), "blue" , `rgb( 80, 80, 80 ), `rgb(   0,   0, 255 ), 10 ),
		     `VSpacing(),
		     `PushButton(`opt(`default), "&OK")
		     )
	       );
    UI::UserInput();
    UI::CloseDialog();
}
		

Example 3: ColoredLabel3.ycp


/**
 * Advanced ColoredLabel example: A sample ColoredLabel widget and sliders
 * for both foreground and background colors.
 **/
{
    if ( ! UI::HasSpecialWidget(`ColoredLabel) || ! UI::HasSpecialWidget(`Slider) )
    {
	UI::OpenDialog(
		   `VBox( 
			 `Label("Error: This UI doesn't support the required special widgets!"),
			 `PushButton(`opt(`default), "&OK")
			 )
		   );
	UI::UserInput();
	UI::CloseDialog();
	
	return;
    }

    define term sample( integer fg_red, integer fg_green, integer fg_blue,
			integer bg_red, integer bg_green, integer bg_blue ) ``{
	return `ColoredLabel( `opt(`hstretch),
			      "Use the sliders\nto change color",
			      `rgb( fg_red, fg_green, fg_blue ),
			      `rgb( bg_red, bg_green, bg_blue ),
			      30 );
    };
    
    UI::OpenDialog(
	       `VBox(
		     `ReplacePoint(`id(`sample), sample( 200, 0, 0,
							 0, 0, 200) ),
		     `VSpacing(),
		     `HBox(
			   `Frame( "Foreground",
				   `VBox(
					 `Slider(`id(`fg_red  ),`opt(`notify), "&red",   0, 255, 200 ),
					 `Slider(`id(`fg_green),`opt(`notify), "&green", 0, 255,   0 ),
					 `Slider(`id(`fg_blue ),`opt(`notify), "&blue",  0, 255,   0 )
					 )
				   ),
			   `Frame( "Backround",
				   `VBox(
					 `Slider(`id(`bg_red  ), `opt(`notify), "r&ed",   0, 255,   0 ),
					 `Slider(`id(`bg_green), `opt(`notify), "gree&n", 0, 255,   0 ),
					 `Slider(`id(`bg_blue ), `opt(`notify), "b&lue",  0, 255, 200 )
					 )
				   )
			   ),
		     `VSpacing(),
		     `PushButton(`id(`close), "&Close")
		     )
	       );

    any widget = nil;

    do
    {
	widget = UI::UserInput();

	if ( widget != `close )
	{
	    UI::ReplaceWidget(`id(`sample),
			  sample( (integer) UI::QueryWidget(`id(`fg_red  ), `Value ),
				  (integer) UI::QueryWidget(`id(`fg_green), `Value ),
				  (integer) UI::QueryWidget(`id(`fg_blue ), `Value ),
				  
				  (integer) UI::QueryWidget(`id(`bg_red  ), `Value ),
				  (integer) UI::QueryWidget(`id(`bg_green), `Value ),
				  (integer) UI::QueryWidget(`id(`bg_blue ), `Value )
				  )
			  );

	}
	
    } while ( widget != `close );
    
    UI::CloseDialog();
}
		

Example 4: ColoredLabel4.ycp


/**
 * Advanced ColoredLabel example: A sample ColoredLabel widget and sliders
 * for both foreground and background colors and a colored label beside each slider.
 **/
{
    if ( ! UI::HasSpecialWidget(`ColoredLabel) || ! UI::HasSpecialWidget(`Slider) )
    {
	UI::OpenDialog(
		   `VBox( 
			 `Label("Error: This UI doesn't support the required special widgets!"),
			 `PushButton(`opt(`default), "&OK")
			 )
		   );
	UI::UserInput();
	UI::CloseDialog();
	
	return;
    }

    define term sample( integer fg_red, integer fg_green, integer fg_blue,
			integer bg_red, integer bg_green, integer bg_blue ) ``{
	return `ColoredLabel( `opt(`hstretch),
			      "Use the sliders\nto change color",
			      `rgb( fg_red, fg_green, fg_blue ),
			      `rgb( bg_red, bg_green, bg_blue ),
			      30 );
    };
    
    UI::OpenDialog(
	       `VBox(
		     `ReplacePoint(`id(`sample), sample( 200, 0, 0,
							 0, 0, 200) ),
		     `VSpacing(),
		     `HBox(
			   `Frame( "Foreground",
				   `VBox(
					 `HBox(
					       `Slider(`id(`fg_red  ),`opt(`notify), "&red",   0, 255, 200 ),
					       `ColoredLabel("   ", `rgb(255, 0, 0), `rgb(255, 0, 0), 10 ),
					       `HSpacing()
					       ),
					 `HBox(
					       `Slider(`id(`fg_green),`opt(`notify), "&green", 0, 255,   0 ),
					       `ColoredLabel("   ", `rgb(0, 255, 0), `rgb(0, 255, 0), 10 ),
					       `HSpacing()
					       ),
					 `HBox(
					       `Slider(`id(`fg_blue ),`opt(`notify), "&blue",  0, 255,   0 ),
					       `ColoredLabel("   ", `rgb(0, 0, 255), `rgb(0, 0, 255), 10 ),
					       `HSpacing()
					       )
					 )
				   ),
			   `HSpacing(),
			   `Frame( "Backround",
				   `VBox(
					 `HBox(
					       `Slider(`id(`bg_red  ),`opt(`notify), "&red",   0, 255, 0 ),
					       `ColoredLabel("   ", `rgb(255, 0, 0), `rgb(255, 0, 0), 10 ),
					       `HSpacing()
					       ),
					 `HBox(
					       `Slider(`id(`bg_green),`opt(`notify), "&green", 0, 255,   0 ),
					       `ColoredLabel("   ", `rgb(0, 255, 0), `rgb(0, 255, 0), 10 ),
					       `HSpacing()
					       ),
					 `HBox(
					       `Slider(`id(`bg_blue ),`opt(`notify), "&blue",  0, 255, 200 ),
					       `ColoredLabel("   ", `rgb(0, 0, 255), `rgb(0, 0, 255), 10 ),
					       `HSpacing()
					       )
					 )
				   )
			   ),
		     `VSpacing(),
		     `PushButton(`id(`close), "&Close")
		     )
	       );

    any widget = nil;

    do
    {
	widget = UI::UserInput();

	if ( widget != `close )
	{
	    UI::ReplaceWidget(`id(`sample),
			  sample( (integer) UI::QueryWidget(`id(`fg_red  ), `Value ),
				  (integer) UI::QueryWidget(`id(`fg_green), `Value ),
				  (integer) UI::QueryWidget(`id(`fg_blue ), `Value ),
				  
				  (integer) UI::QueryWidget(`id(`bg_red  ), `Value ),
				  (integer) UI::QueryWidget(`id(`bg_green), `Value ),
				  (integer) UI::QueryWidget(`id(`bg_blue ), `Value )
				  )
			  );

	}
	
    } while ( widget != `close );
    
    UI::CloseDialog();
}
		

Back to the widget index


YaST2 Developers Documentation: YCP UI Reference: Widgets

Generated Fri May 21 12:39:01 2004