GnuCash  2.6.99
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Files | Data Structures | Macros | Functions
Register2 Page

Files

file  gnc-plugin-page-register.h
 Functions providing a register page for the GnuCash UI.
 

Data Structures

struct  GncPluginPageRegister2
 
struct  GncPluginPageRegister2Class
 

Macros

#define GNC_TYPE_PLUGIN_PAGE_REGISTER2   (gnc_plugin_page_register2_get_type ())
 
#define GNC_PLUGIN_PAGE_REGISTER2(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_PLUGIN_PAGE_REGISTER2, GncPluginPageRegister2))
 
#define GNC_PLUGIN_PAGE_REGISTER2_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_PAGE_REGISTER2, GncPluginPageRegister2Class))
 
#define GNC_IS_PLUGIN_PAGE_REGISTER2(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_PLUGIN_PAGE_REGISTER2))
 
#define GNC_IS_PLUGIN_PAGE_REGISTER2_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_PAGE_REGISTER2))
 
#define GNC_PLUGIN_PAGE_REGISTER2_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_PAGE_REGISTER2, GncPluginPageRegister2Class))
 
#define GNC_PLUGIN_PAGE_REGISTER2_NAME   "GncPluginPageRegister2"
 

Functions

GType gnc_plugin_page_register2_get_type (void)
 
GncPluginPagegnc_plugin_page_register2_new (Account *account, gboolean subaccounts)
 
GncPluginPagegnc_plugin_page_register2_new_ledger (GNCLedgerDisplay2 *ledger)
 
GncPluginPagegnc_plugin_page_register2_new_gl (void)
 
void gnc_plugin_page_register2_set_options (GncPluginPage *plugin_page, gint lines_default, gboolean read_only)
 
GNCSplitReg2gnc_plugin_page_register2_get_gsr (GncPluginPage *plugin_page)
 
GNCLedgerDisplay2gnc_plugin_page_register2_get_ledger (GncPluginPage *plugin_page)
 
Accountgnc_plugin_page_register2_get_account (GncPluginPageRegister2 *page)
 

Detailed Description

Function Documentation

Account* gnc_plugin_page_register2_get_account ( GncPluginPageRegister2 page)

Get the Account associated with this register page.

Parameters
pageA "register" page.
Returns
The account if the register contains only a single account, or an account and its sub-accounts. NULL otherwise.

Definition at line 798 of file gnc-plugin-page-register2.c.

799 {
801  GNCLedgerDisplay2Type ledger_type;
802  Account *leader;
803 
804  priv = GNC_PLUGIN_PAGE_REGISTER2_GET_PRIVATE(page);
805  ledger_type = gnc_ledger_display2_type (priv->ledger);
806  leader = gnc_ledger_display2_leader (priv->ledger);
807 
808  if ((ledger_type == LD2_SINGLE) || (ledger_type == LD2_SUBACCOUNT))
809  return leader;
810  return NULL;
811 }
GNCSplitReg2* gnc_plugin_page_register2_get_gsr ( GncPluginPage plugin_page)

Get the GNCSplitReg data structure associated with this register page.

Parameters
plugin_pageA "register" page.

Definition at line 3838 of file gnc-plugin-page-register2.c.

3839 {
3840  GncPluginPageRegister2 *page;
3842 
3843  g_return_val_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER2(plugin_page), NULL);
3844 
3845  page = GNC_PLUGIN_PAGE_REGISTER2 (plugin_page);
3846  priv = GNC_PLUGIN_PAGE_REGISTER2_GET_PRIVATE(page);
3847 
3848  return priv->gsr;
3849 }
GNCLedgerDisplay2* gnc_plugin_page_register2_get_ledger ( GncPluginPage plugin_page)

Get the GNCLedgerDisplay data structure associated with this register page.

Parameters
plugin_pageA "register" page.

Definition at line 3853 of file gnc-plugin-page-register2.c.

3854 {
3855  GncPluginPageRegister2 *page;
3857 
3858  g_return_val_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER2(plugin_page), NULL);
3859 
3860  page = GNC_PLUGIN_PAGE_REGISTER2 (plugin_page);
3861  priv = GNC_PLUGIN_PAGE_REGISTER2_GET_PRIVATE(page);
3862 
3863  return priv->ledger;
3864 }
GType gnc_plugin_page_register2_get_type ( void  )

Retrieve the type number for the plugin page.

Returns
The type number.

Definition at line 560 of file gnc-plugin-page-register2.c.

561 {
562  static GType gnc_plugin_page_register2_type = 0;
563 
564  if (gnc_plugin_page_register2_type == 0)
565  {
566  static const GTypeInfo our_info =
567  {
569  NULL,
570  NULL,
571  (GClassInitFunc) gnc_plugin_page_register2_class_init,
572  NULL,
573  NULL,
574  sizeof (GncPluginPageRegister2),
575  0,
576  (GInstanceInitFunc) gnc_plugin_page_register2_init
577  };
578 
579  gnc_plugin_page_register2_type = g_type_register_static (GNC_TYPE_PLUGIN_PAGE,
580  GNC_PLUGIN_PAGE_REGISTER2_NAME,
581  &our_info, 0);
582  }
583 
584  return gnc_plugin_page_register2_type;
585 }
GncPluginPage* gnc_plugin_page_register2_new ( Account account,
gboolean  subaccounts 
)

Create a new "register" plugin page, given a pointer to an account.

Parameters
accountThe pointer to the account to embed in the register.
subaccountsTRUE if all the sub-accounts of the specified account should be included in the register.
Returns
The newly created plugin page.

Definition at line 653 of file gnc-plugin-page-register2.c.

654 {
655  GNCLedgerDisplay2 *ledger;
656  GncPluginPage *page;
658 
659 /*################## Added for Reg2 #################*/
660  const GList *item;
661  GncPluginPageRegister *old_register_page;
662 /*################## Added for Reg2 #################*/
663 
664  ENTER("account=%p, subaccounts=%s", account,
665  subaccounts ? "TRUE" : "FALSE");
666 
667 /*################## Added for Reg2 #################*/
668  // We test for the old register being open here, ie matching account guids
669  item = gnc_gobject_tracking_get_list (GNC_PLUGIN_PAGE_REGISTER_NAME);
670  for ( ; item; item = g_list_next (item))
671  {
672  Account *old_account;
673  old_register_page = (GncPluginPageRegister *)item->data;
674  old_account = gnc_plugin_page_register_get_account (old_register_page);
675 
676  if (guid_equal (xaccAccountGetGUID (account), xaccAccountGetGUID (old_account)))
677  {
678  gnc_error_dialog (NULL, "%s",
679  _("You have tried to open an account in the new register while it is open in the old register."));
680  return NULL;
681  }
682  }
683 /*################## Added for Reg2 #################*/
684 
685  if (subaccounts)
686  ledger = gnc_ledger_display2_subaccounts (account);
687  else
688  ledger = gnc_ledger_display2_simple (account);
689 
690  page = gnc_plugin_page_register2_new_common (ledger);
691  priv = GNC_PLUGIN_PAGE_REGISTER2_GET_PRIVATE (page);
692  priv->key = *xaccAccountGetGUID (account);
693 
694  LEAVE("%p", page);
695  return page;
696 }
const GList * gnc_gobject_tracking_get_list(const gchar *name)
#define ENTER(format, args...)
Definition: qoflog.h:261
#define xaccAccountGetGUID(X)
Definition: Account.h:239
gboolean guid_equal(const GncGUID *guid_1, const GncGUID *guid_2)
#define LEAVE(format, args...)
Definition: qoflog.h:271
Account * gnc_plugin_page_register_get_account(GncPluginPageRegister *page)
GncPluginPage* gnc_plugin_page_register2_new_gl ( void  )

Create a new "register" plugin page containing a general ledger.

Returns
The newly created plugin page.

Definition at line 699 of file gnc-plugin-page-register2.c.

700 {
701  GNCLedgerDisplay2 *ledger;
702 
703  ledger = gnc_ledger_display2_gl ();
704  return gnc_plugin_page_register2_new_common (ledger);
705 }
GncPluginPage* gnc_plugin_page_register2_new_ledger ( GNCLedgerDisplay2 ledger)

Create a new "register" plugin page, given a pointer to an already created ledger. This function should be used when the ledger already exists. (E.G. From the "find transaction" code, or from the scheduled transaction code.)

Parameters
ledgerThe pointer to the ledger to embed into the register.
Returns
The newly created plugin page.

Definition at line 708 of file gnc-plugin-page-register2.c.

709 {
710  return gnc_plugin_page_register2_new_common (ledger);
711 }
void gnc_plugin_page_register2_set_options ( GncPluginPage plugin_page,
gint  lines_default,
gboolean  read_only 
)

Set various register options on a newly created "register" plugin page.

Parameters
plugin_pageThe "register" page to modify.
lines_defaultUsed to calculate the minimum preferred height of the plugin page.
read_onlyTrue if the register should be read-only.

Definition at line 3822 of file gnc-plugin-page-register2.c.

3825 {
3826  GncPluginPageRegister2 *page;
3828 
3829  g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER2(plugin_page));
3830 
3831  page = GNC_PLUGIN_PAGE_REGISTER2 (plugin_page);
3832  priv = GNC_PLUGIN_PAGE_REGISTER2_GET_PRIVATE(page);
3833  priv->lines_default = lines_default;
3834  priv->read_only = read_only;
3835 }