![]() |
![]() |
![]() |
Anjuta Developers Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <libanjuta/anjuta-profile-manager.h> struct AnjutaProfileManagerClass; AnjutaProfileManager * anjuta_profile_manager_new (AnjutaPluginManager *plugin_manager
); gboolean anjuta_profile_manager_push (AnjutaProfileManager *profile_manager
,AnjutaProfile *profile
,GError **error
); gboolean anjuta_profile_manager_pop (AnjutaProfileManager *profile_manager
,AnjutaProfile *profile
,GError **error
); void anjuta_profile_manager_freeze (AnjutaProfileManager *profile_manager
); gboolean anjuta_profile_manager_thaw (AnjutaProfileManager *profile_manager
,GError **error
); AnjutaProfile * anjuta_profile_manager_get_current (AnjutaProfileManager *profile_manager
); void anjuta_profile_manager_close (AnjutaProfileManager *profile_manager
); AnjutaProfileManagerPriv;
Anjuta uses up to three profiles. A system profile which contains mandatory plugins which are never unloaded. A user profile is used when no project is loaded and a project profile when one is loaded. If a second project is loaded, it is loaded in another instance of Anjuta. When a project is closed, Anjuta goes back to the user profile.
The profile manager can be in a frozen state where you can push or pop a profile from the stack without triggering a change of the profile.
struct AnjutaProfileManagerClass { GObjectClass parent_class; void(* profile_pushed) (AnjutaProfileManager *self, AnjutaProfile* profile); void(* profile_popped) (AnjutaProfileManager *self, AnjutaProfile* profile); };
AnjutaProfileManager * anjuta_profile_manager_new (AnjutaPluginManager *plugin_manager
);
Create a new profile manager.
|
the AnjutaPluginManager used by all profiles. |
Returns : |
the new AnjutaProfileManager object. |
gboolean anjuta_profile_manager_push (AnjutaProfileManager *profile_manager
,AnjutaProfile *profile
,GError **error
);
Add a new profile at the top of the profile manager stack. If the profile manager is not frozen, this new profile will be loaded immediatly and become the current profile.
gboolean anjuta_profile_manager_pop (AnjutaProfileManager *profile_manager
,AnjutaProfile *profile
,GError **error
);
Remove a profile from the profile manager stack. If the manager is not frozen, only the current profile can be removed. It will be unloaded and the previous profile will be loaded. If the manager is frozen, the current profile or the last pushed profile can be removed.
void anjuta_profile_manager_freeze (AnjutaProfileManager *profile_manager
);
Freeze the plugin manager. In this state, plugins can be added and removed
from the stack without triggering any change in the current profile. It is
possible to freeze the manager several times but it will be back in its normal
state only after as much call of anjuta_profile_manager_thaw()
.
|
the AnjutaProfileManager object. |
gboolean anjuta_profile_manager_thaw (AnjutaProfileManager *profile_manager
,GError **error
);
Put back the plugin manager in its normal mode after calling
anjuta_profile_manager_freeze()
. It will load a new profile if one has been
added while the manager was frozen.
AnjutaProfile * anjuta_profile_manager_get_current (AnjutaProfileManager *profile_manager
);
Return the current profile.
|
A AnjutaProfileManager object. |
Returns : |
a AnjutaProfile object or NULL
if the profile stack is empty. [transfer none][allow-none]
|
void anjuta_profile_manager_close (AnjutaProfileManager *profile_manager
);
Close the AnjutaProfileManager causing "descoped" to be emitted and all queued and previous profiles to be released. This function is to be used when destroying an Anjuta instance.
|
A AnjutaProfileManager object. |