Panel plugin interface

Jasper Huijsmans jasper at xfce.org
Sat Sep 11 19:50:00 CEST 2004


Maarten Boekhold wrote:
> Hi all,
> 
> Yesterday I asked for information on the panel plugin interface. On the 
> suggestion of 'benny' on the #xfce IRC channel, I created a list of all 
> the non-static functions in the panel source files (just the 'panel' 
> sub-directory).
> 
> I suspect that a lot of those functions are not intended to be used by 
> plugins, so I'd appreciate it if somebody could have a look at the list 
> of files/functions included below, and comment on it. Perhaps mark all 
> functions that are intended to be accessed by panel plugins with a '*'? 
> That list could be included in the XFCE docs as a quick/dirty reference 
> for plugin writers as well...
> 
> I'll also try to create a list of functions that a plugin is supposed to 
> provide, and post that later.
> 
> Maarten
> 

Ok, let's give it a try. Useful functions are marked with a *. Most 
public functions are for internal panel use only.

> add-control-dialog.c:
>     add-control-dialog
> 
> controls.c:

* (automatically used) >     xfce_plugin_check_version

>     control_class_list_init
>     control_class_list_cleanup
>     control_class_set_unique
>     control_class_set_icon
>     control_class_unref
>     get_control_info_list
>     insert_control
>     get_controls_submenu
>     create_control
>     control_new
>     control_free
>     control_pack
>     control_unpack
>     control_attach_callbacks
>     control_set_from_xml
>     control_write_xml
>     control_create_options
>     control_set_settings
>     control_set_orientation
>     control_set_size
>     control_set_theme
> 
> controls_dialog.c:
>     controls_dialog
>     destroy_controls_dialog
> 
> groups.c:
>     create_panel_group
>     groups_init
>     groups_cleanup
>     groups_pack
>     groups_unpack
>     old_groups_set_from_xml
>     groups_set_from_xml
>     groups_write_xml
>     groups_set_orientation
>     groups_set_layer
>     groups_set_size
>     groups_set_popup_position
>     groups_set_theme
>     groups_set_arrow_direction
>     groups_get_arrow_direction
>     groups_get_control
>     groups_get_popup
>     groups_move
>     groups_remove
>     groups_show_popup
>     groups_add_control
>     groups_get_n_controls
> 
> icons.c:
>     icons_init
>     icon_theme_init

* >     themed_pixbuf_from_name_list
* >     get_pixbuf_by_id
* >     get_pixbuf_from_file
* >     get_panel_pixbuf
* >     get_scaled_pixbuf
* >     get_themed_pixbuf

> 
> item.c:
>     item_read_config
>     item_write_config
>     item_free
>     item_set_theme
>     item_apply_config
>     menu_item_new
>     create_addtomenu_item
>     create_menu_item
>     menu_item_set_popup_size
>     create_panel_item
>     panel_item_class_init
> 
> item_dialog.c:
>     create_command_options
>     destroy_command_options
>     command_options_set_command
>     command_options_set_callback
>     command_options_get_command
>     icon_entry_lost_focus
>     create_icon_options
>     destroy_icon_options
>     icon_options_set_icon
>     icon_options_set_callback
>     icon_options_get_icon
>     panel_item_create_options
>     edit_menu_item_dialog
>     add_menu_item_dialog
>     destroy_menu_dialog
> 
> main.c:

* >     quit
* >     restart

> 
> mcs_client.c:
>     client_event_filter
>     watch_cb
>     mcs_watch_xfce_channel
>     mcs_stop_watch
>     mcs_dialog
> 
> panel.c:
>     handle_new
>     panel_cleanup
>     create_panel
>     panel_set_orientation
>     panel_set_layer
>     panel_set_size
>     panel_set_position
>     panel_set_theme
>     panel_set_settings
>     panel_center
>     panel_set_autohide
>     panel_parse_xml
>     panel_write_xml
>     panel_register_open_menu
>     panel_block_autohide
>     panel_unblock_autohide
* >     panel_get_side
> 
> popup.c:
>     hide_current_popup_menu
>     toggle_popup
>     tearoff_button
>     delete_popup
>     popup_key_pressed
>     create_panel_popup
>     panel_popup_pack
>     panel_popup_unpack
>     panel_popup_add_item
>     panel_popup_remove_item
>     panel_popup_set_from_xml
>     panel_popup_write_xml
>     panel_popup_free
>     panel_popup_set_size
>     panel_popup_set_popup_position
>     panel_popup_set_layer
>     panel_popup_set_theme
>     panel_popup_set_arrow_type
> 
> settings.c:
>     get_global_prefs
>     get_panel_config
>     write_panel_config
> 
> xfce_support.c:

* >     get_save_dir
* >     get_save_file
gone >     get_read_dirs
* >     get_read_file
>     get_plugin_dirs
gone >     get_theme_dirs
>     write_backup_file
* >     add_tooltip

>     set_window_layer
>     check_net_wm_support
>     set_window_skip

* >     dnd_set_drag_dest
* >     dnd_set_callback
* >     gnome_uri_list_free_strings
* >     gnome_uri_list_extract_uris
* >     gnome_uri_list_extract_filenames
* >     select_file_name
* >     select_file_with_preview
* >     exec_cmd
* >     exec_cmd_silent

That should be about it ;-)



More information about the Xfce4-dev mailing list