Hotlist: Allow hotlist initilialisation without hotlist corewindow.
Now, hotlist_init can be called without a corewindow. This allows the hotlist backend to be up and running, before any hostlist manager is opened. Calling hotlist_manager_init attaches the hotlist to a corewindow.
This commit is contained in:
parent
ded1979fa1
commit
b6be869f19
|
@ -1227,8 +1227,7 @@ static nserror hotlist_populate(const char *path)
|
|||
|
||||
|
||||
/* Exported interface, documented in hotlist.h */
|
||||
nserror hotlist_init(struct core_window_callback_table *cw_t,
|
||||
void *core_window_handle, const char *path)
|
||||
nserror hotlist_init(const char *path)
|
||||
{
|
||||
nserror err;
|
||||
|
||||
|
@ -1252,8 +1251,7 @@ nserror hotlist_init(struct core_window_callback_table *cw_t,
|
|||
|
||||
/* Create the hotlist treeview */
|
||||
err = treeview_create(&hl_ctx.tree, &hl_tree_cb_t,
|
||||
HL_N_FIELDS, hl_ctx.fields,
|
||||
cw_t, core_window_handle,
|
||||
HL_N_FIELDS, hl_ctx.fields, NULL, NULL,
|
||||
TREEVIEW_NO_FLAGS);
|
||||
if (err != NSERROR_OK) {
|
||||
hl_ctx.tree = NULL;
|
||||
|
@ -1271,10 +1269,41 @@ nserror hotlist_init(struct core_window_callback_table *cw_t,
|
|||
* the treeview is built. */
|
||||
hl_ctx.built = true;
|
||||
|
||||
LOG("Loaded hotlist");
|
||||
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
|
||||
/* Exported interface, documented in hotlist.h */
|
||||
nserror hotlist_manager_init(struct core_window_callback_table *cw_t,
|
||||
void *core_window_handle)
|
||||
{
|
||||
nserror err;
|
||||
|
||||
/* Create the hotlist treeview */
|
||||
err = treeview_cw_attach(hl_ctx.tree, cw_t, core_window_handle);
|
||||
if (err != NSERROR_OK) {
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Inform client of window height */
|
||||
treeview_get_height(hl_ctx.tree);
|
||||
|
||||
LOG("Loaded hotlist");
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
|
||||
/* Exported interface, documented in hotlist.h */
|
||||
nserror hotlist_manager_fini(void)
|
||||
{
|
||||
nserror err;
|
||||
|
||||
/* Create the hotlist treeview */
|
||||
err = treeview_cw_detach(hl_ctx.tree);
|
||||
if (err != NSERROR_OK) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
|
|
@ -33,18 +33,44 @@ struct rect;
|
|||
/**
|
||||
* Initialise the hotlist.
|
||||
*
|
||||
* This opens the hotlist file, generating the hotlist data, and creates a
|
||||
* This opens the hotlist file, construct the hostlist, and creates a
|
||||
* treeview. If there's no hotlist file, it generates a default hotlist.
|
||||
*
|
||||
* This must be called before any other hotlist_* function.
|
||||
* This must be called before any other hotlist_* function. It must
|
||||
* be called before URLs can be added to the hotlist, and before the
|
||||
* hotlist can be queried to ask if URLs are present in the hotlist.
|
||||
*
|
||||
* \param cw_t Callback table for core_window containing the treeview
|
||||
* \param core_window_handle The handle in which the treeview is shown
|
||||
* \param path The path to hotlist file to load
|
||||
* \return NSERROR_OK on success, appropriate error otherwise
|
||||
*/
|
||||
nserror hotlist_init(struct core_window_callback_table *cw_t,
|
||||
void *core_window_handle, const char *path);
|
||||
nserror hotlist_init(const char *path);
|
||||
|
||||
/**
|
||||
* Initialise the hotlist manager.
|
||||
*
|
||||
* This connects the underlying hotlist treeview to a corewindow for display.
|
||||
*
|
||||
* The provided core window handle must be valid until hotlist_fini is called.
|
||||
*
|
||||
* \param cw_t Callback table for core_window containing the treeview
|
||||
* \param core_window_handle The handle in which the treeview is shown
|
||||
* \return NSERROR_OK on success, appropriate error otherwise
|
||||
*/
|
||||
nserror hotlist_manager_init(struct core_window_callback_table *cw_t,
|
||||
void *core_window_handle);
|
||||
|
||||
|
||||
/**
|
||||
* Finalise the hotlist manager.
|
||||
*
|
||||
* This simply disconnects the underlying treeview from its corewindow,
|
||||
* allowing destruction of a GUI hotlist window, without finalising the
|
||||
* hotlist module.
|
||||
*
|
||||
* \param path The path to save hotlist to
|
||||
* \return NSERROR_OK on success, appropriate error otherwise
|
||||
*/
|
||||
nserror hotlist_manager_fini(void);
|
||||
|
||||
/**
|
||||
* Finalise the hotlist.
|
||||
|
|
Loading…
Reference in New Issue