/*
* Helper class for evolution components to setup a view
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see
*
*
* Authors:
* Michael Zucchi
*
* Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
*
*/
#ifdef HAVE_CONFIG_H
#include
#endif
#include
#include "e-component-view.h"
#include "bonobo/bonobo-control.h"
static BonoboObjectClass *parent_class = NULL;
static void
impl_ComponentView_getControls(PortableServer_Servant servant,
Bonobo_Control *side_control,
Bonobo_Control *view_control,
Bonobo_Control *statusbar_control,
CORBA_Environment *ev)
{
EComponentView *ecv = (EComponentView *)bonobo_object_from_servant(servant);
*side_control = CORBA_Object_duplicate (BONOBO_OBJREF (ecv->side_control), ev);
*view_control = CORBA_Object_duplicate (BONOBO_OBJREF (ecv->view_control), ev);
*statusbar_control = CORBA_Object_duplicate (BONOBO_OBJREF (ecv->statusbar_control), ev);
}
/* GObject methods. */
static void
impl_dispose (GObject *object)
{
EComponentView *ecv = (EComponentView *)object;
ecv->side_control = NULL;
ecv->view_control = NULL;
ecv->statusbar_control = NULL;
((GObjectClass *)parent_class)->dispose(object);
}
static void
impl_finalise (GObject *object)
{
EComponentView *ecv = (EComponentView *)object;
g_free(ecv->id);
((GObjectClass *)parent_class)->finalize(object);
}
static void
e_component_view_class_init (EComponentViewClass *klass)
{
GObjectClass *object_class;
POA_GNOME_Evolution_ComponentView__epv *epv;
parent_class = g_type_class_ref(bonobo_object_get_type());
object_class = G_OBJECT_CLASS (klass);
object_class->dispose = impl_dispose;
object_class->finalize = impl_finalise;
epv = & klass->epv;
epv->getControls = impl_ComponentView_getControls;
}
static void
e_component_view_init (EComponentView *shell)
{
}
EComponentView *e_component_view_new(GNOME_Evolution_ShellView parent, const char *id, struct _GtkWidget *side, struct _GtkWidget *view, struct _GtkWidget *statusbar)
{
EComponentView *new = g_object_new (e_component_view_get_type (), NULL);
CORBA_Environment ev = { NULL };
new->id = g_strdup(id);
new->shell_view = CORBA_Object_duplicate(parent, &ev);
CORBA_exception_free(&ev);
/* FIXME: hook onto destroys */
new->side_control = bonobo_control_new(side);
new->view_control = bonobo_control_new(view);
new->statusbar_control = bonobo_control_new(statusbar);
return new;
}
EComponentView *e_component_view_new_controls(GNOME_Evolution_ShellView parent, const char *id, BonoboControl *side, BonoboControl *view, BonoboControl *statusbar)
{
EComponentView *new = g_object_new (e_component_view_get_type (), NULL);
CORBA_Environment ev = { NULL };
new->id = g_strdup(id);
new->shell_view = CORBA_Object_duplicate(parent, &ev);
CORBA_exception_free(&ev);
/* FIXME: hook onto destroys */
new->side_control = side;
new->view_control = view;
new->statusbar_control = statusbar;
return new;
}
void
e_component_view_set_title(EComponentView *ecv, const char *title)
{
CORBA_Environment ev = { NULL };
/* save roundtrips, check title is the same */
GNOME_Evolution_ShellView_setTitle(ecv->shell_view, ecv->id, title, &ev);
CORBA_exception_free(&ev);
}
void
e_component_view_set_button_icon (EComponentView *ecv, const char *iconName)
{
CORBA_Environment ev = { NULL };
/* save roundtrips, check title is the same */
GNOME_Evolution_ShellView_setButtonIcon(ecv->shell_view, ecv->id, iconName, &ev);
CORBA_exception_free(&ev);
}
BONOBO_TYPE_FUNC_FULL (EComponentView, GNOME_Evolution_ComponentView, bonobo_object_get_type(), e_component_view)
d$Yd\0Z?1i\_S2J4~YQ!;O
u3X51AwNJ+2-&3" rA02 47:*5+fFlx)BD[\(~#MD
H AjtY[g)ޱ.wiI*j6r0_PQ26Yu¸;Yũ9_ʶVn(#5~!7ܤ[ӢR}i}H# 8MOz `oB"wuZ#Pȸa Kmj81OcO(WLHq¨ӱQxVX נ7NܤC
RhѥHWdRDxXKL.X7fheiJ5'!.58 kb-ZRPf$CK)q|X$s9&u( kkϹ' %N笀D)x,3^ۼ,laW\[G*BGVҝ0B ]z?i4w[lHmb.Ivge"?iM4ije[L42*m$z{X[B$m$Mϸ '3vk G!dTspbF>I@UdL",4mSrQ)hu W4}
Rx%!iIi$dY[xڢڥg-njޅtdUIQ2SMI[bcr5PVB*ݖ:g۪كA2mI>>XP=r]:):tW&d4t4tyVlf`D,WUAODBJ3$O:FrԜ:`u6]*~G-{4ݷEUvv]!'i]%oώZ$g3 KЋPDmW]~]%}r,Q+39"en0DBqW0&ٰTMy$]Nw!I
V`jDUlgN"~f0
OP rbT
)JuJt=ٚ%"ȩбG7y.uR{nՂ;#&C/kҋS∻d44G?rN `T@)$VҜʌD;X0H<;D92Cq)/< s(:q*N_oG^3.P,xtt
6RLD;hXfd yQ9.b%/ڢ6G \HTT_z#2nqh]Nmχܘ937J$U&u!>$MZu\8dxP:a$J~IgUp?Gv0aMu7"ΏPn]ɐѥqq5
['<'7B7
P-=b21;*|3
(#S7
olwp%#AWds1;0`yPFΔll{mT;#y֩L Uw3[.g_lCH\It~?\]?Wӓ}n/.^|gq*~s57ɈZ4#,.7}9pvs^O./ɫ9Fz79W3s}sB{ƕOQM:8c08@*Jw׳ڷH%Ntv^{]utrpvp+#_쟰6FovOOԏ^Z=nE?pv=9ыh+˛S>xM=ާG{o_#sFF<;1eMzl5 gGJ ޞ9>݇SHЄ9=m][.zhn[4(60Qы{g?RIj}3h{st}f>''Hh.vo1ړ|K c6LqPqzgFݟ1gM
nw>?<p#,ыOvpL;/
|UZIKˉab=Bmk/O٨݈{L>G#/>N{{oOhޜvpċx409z{pǨcBT{.d[zQpj~xOv_x #,k
:L8+"?.Ka={D̎r9vތXGل.g农ߦ^zzY^rG>k"jynT e뤇1?wY;;pL
^(53*,Vc3E
A3¢P_`hf>1X`"> \'j"=W69:!+R3~,;FXV$c ]qؓ:G7^IR'o0&`5Xs=."cq&yWw\WL
< p%MfzvY.~fUݳ*yfh%H!a䦑CgZ6B/2ܭ b^=3gtѱwh"d.g6CMǠq$FUiimj9^*⅜СXsD+VόYX`ӿuxvA"}DF
W(jei@H?t$z]#pO2DĘǩ1q%"pt;Vkaqi,>,O8盟ni՛;EzנTV{dg~su#]q\N 汕|qMm[HglXQ[k
9tPo`X>UvM#DO_ĿbR_;<F;zO$vƿڭGMXB"f=
.!~;ix7lznl>)4häDZg^}S(
^tfɇ%|niH|,s("}P+6nJH:MIG&Q|Y7E;+EvX*鈽=dvuۮNɿ^ mW!*W3y>CBt-
/bi*]m맻UJO<ԗ8D_!0lRf7R OB*muڗ8L'OFեrDždWj(BG(~"iN"olI% &(B`O>wKu%v|iW죇
ǚh(ޅm}boGX ,CƖ`P9(V|J$p4bȈ_gc86Gf)uti8~{pui$B%XQ܍ɪ[GD4"Y,\IHMJ?Φ 1QEހ1&StyXpߋ71?_]:UgIuzg