📄 detail.cpp
字号:
// Detail.cpp: implementation of the CDetail class.
//
//////////////////////////////////////////////////////////////////////
#include "Detail.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDetail::CDetail(CWidget* parent) : CWidget(parent)
{
m_bClear = NULL;
m_hHandle = Create();
gtk_signal_connect (GTK_OBJECT (m_hHandle), "destroy",
GTK_SIGNAL_FUNC (on_widget_destroy),
this);
Show();
}
CDetail::~CDetail()
{
if(m_bClear)
delete m_bClear;
m_bClear = NULL;
}
void CDetail::UpdataDetail(CCallsInfo* cif, int nth)
{
if(!cif)
return;
// call time
if(nth < 0){
m_isCallTime = true;
if(m_bClear)
m_bClear->Show();
// gtk_label_set_text(GTK_LABEL(m_lbTitel), _("Call Time:"));
gtk_frame_set_label (GTK_FRAME(m_hHandle), _(" 通话时长 "));
gtk_label_set_text(GTK_LABEL(m_lbName_pre), _("上次通话时长 :"));
gtk_label_set_text(GTK_LABEL(m_lbTel_pre), _("接听时长总计 :"));
gtk_label_set_text(GTK_LABEL(m_lbTime_pre), _("打出时长总计 :"));
gtk_label_set_text(GTK_LABEL(m_lbFreq_pre), _("总通话时长 :"));
CCallTimes *ct = (CCallTimes*)cif;
gtk_label_set_text(GTK_LABEL(m_lbName), ct->GetLast().to_string().c_str());
gtk_label_set_text(GTK_LABEL(m_lbTel), ct->GetCallIn().to_string().c_str());
gtk_label_set_text(GTK_LABEL(m_lbTime), ct->GetCallOut().to_string().c_str());
gtk_label_set_text(GTK_LABEL(m_lbFreq), ct->GetTotal().to_string().c_str());
return;
}
m_isCallTime = false;
if(m_bClear)
m_bClear->Hide();
// record detail
static gchar* szTitles[] = { _("常用号码"),
_("未接电话"),
_("已拨电话"),
_("已接电话"),
_("黑名单")
};
static char* lbTime_pre[] = { _("上次通话时间 :"),
_("最近未接时间 :"),
_("上次拨打时间 :"),
_("上次接听时间 :"),
_("最近骚扰时间 :")
};
static char* lbFreq_pre[] = { _("通话次数 :"),
_("未接次数 :"),
_("通话时长 :"),
_("通话时长 :"),
_("骚扰次数 :")
};
gchar* title = g_strdup_printf(" %s %d ", _(szTitles[(int)cif->GetType()]), nth+1);
//gtk_label_set_text(GTK_LABEL(m_lbTitel), title);
gtk_frame_set_label (GTK_FRAME(m_hHandle), title);
g_free(title);
CCallRecord* cr = cif->GetDetail(nth);
if(!cr) return ;
gtk_label_set_text(GTK_LABEL(m_lbFreq_pre), _(lbFreq_pre[cif->GetType()]));
if(cif->GetType() == CCallsInfo::received ||
cif->GetType() == CCallsInfo::dialed){
gtk_label_set_text(GTK_LABEL(m_lbFreq), cr->GetDuration().to_string().c_str());
}
else{
gchar* s = g_strdup_printf("%d", cr->GetFreq());
gtk_label_set_text(GTK_LABEL(m_lbFreq), s);
g_free(s);
}
gtk_label_set_text(GTK_LABEL(m_lbName_pre), _("姓名 :"));
gtk_label_set_text(GTK_LABEL(m_lbTel_pre), _("电话号码 :"));
gtk_label_set_text(GTK_LABEL(m_lbTime_pre), _(lbTime_pre[cif->GetType()]));
//gtk_label_set_text(GTK_LABEL(m_lbTime_pre), _("Time :"));
/* gchar* name = (gchar*)cr->GetName();
if(!name || !name[0])
name = N_("<none>");
*/
gtk_label_set_text(GTK_LABEL(m_lbName), cr->GetName());
gtk_label_set_text(GTK_LABEL(m_lbTel), cr->GetTel());
gtk_label_set_text(GTK_LABEL(m_lbTime), cr->GetTime().to_string().c_str());
}
GtkWidget* CDetail::Create()
{
GtkWidget* frame1 = gtk_frame_new("blach list 1:");
gtk_frame_set_label_align(GTK_FRAME(frame1), 0.05, 0.0);
gtk_container_set_border_width(GTK_CONTAINER(frame1), 5);
GtkWidget* fixed1;
fixed1 = gtk_fixed_new ();
gtk_container_set_border_width(GTK_CONTAINER(fixed1), 3);
gtk_widget_show(fixed1);
gtk_container_add(GTK_CONTAINER(frame1), fixed1);
/* m_lbTitel = gtk_label_new (_("Black List 1 :"));
gtk_widget_show (m_lbTitel);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbTitel, 8, 8);
//gtk_widget_set_uposition (m_lbTitel, 8, 8);
gtk_widget_set_usize (m_lbTitel, 120, 20);
gtk_label_set_justify (GTK_LABEL (m_lbTitel), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (m_lbTitel), 7.45058e-009, 0.5);
*/
m_lbTel_pre = gtk_label_new (_("Telephone:"));
gtk_widget_show (m_lbTel_pre);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbTel_pre, 5, 40);
//gtk_widget_set_uposition (m_lbTel_pre, 8, 72);
gtk_widget_set_usize (m_lbTel_pre, 100, 20);
gtk_label_set_justify (GTK_LABEL (m_lbTel_pre), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (m_lbTel_pre), 1, 0.5);
m_lbTime_pre = gtk_label_new (_("Last Call :"));
gtk_widget_show (m_lbTime_pre);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbTime_pre, 5, 75);
//gtk_widget_set_uposition (m_lbTime_pre, 8, 104);
gtk_widget_set_usize (m_lbTime_pre, 100, 20);
gtk_label_set_justify (GTK_LABEL (m_lbTime_pre), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (m_lbTime_pre), 1, 0.5);
m_lbFreq_pre = gtk_label_new (_("Freq :"));
gtk_widget_show (m_lbFreq_pre);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbFreq_pre, 5, 110);
//gtk_widget_set_uposition (m_lbFreq_pre, 8, 136);
gtk_widget_set_usize (m_lbFreq_pre, 100, 20);
gtk_label_set_justify (GTK_LABEL (m_lbFreq_pre), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (m_lbFreq_pre), 1, 0.5);
m_lbName_pre = gtk_label_new (_("Name :"));
gtk_widget_show (m_lbName_pre);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbName_pre, 5, 5);
//gtk_widget_set_uposition (m_lbName_pre, 8, 40);
gtk_widget_set_usize (m_lbName_pre, 100, 20);
gtk_label_set_justify (GTK_LABEL (m_lbName_pre), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (m_lbName_pre), 1, 0.5);
m_lbFreq = gtk_label_new ("1");
gtk_widget_show (m_lbFreq);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbFreq, 120, 110);
//gtk_widget_set_uposition (m_lbFreq, 120, 136);
gtk_widget_set_usize (m_lbFreq, 180, 20);
gtk_misc_set_alignment (GTK_MISC (m_lbFreq), 7.45058e-009, 0.5);
m_lbTime = gtk_label_new (_("2003-10-09 17:09:23"));
gtk_widget_show (m_lbTime);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbTime, 120, 75);
//gtk_widget_set_uposition (m_lbTime, 120, 104);
gtk_widget_set_usize (m_lbTime, 180, 20);
gtk_misc_set_alignment (GTK_MISC (m_lbTime), 7.45058e-009, 0.5);
m_lbTel = gtk_label_new (_("008613122445566"));
gtk_widget_show (m_lbTel);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbTel, 120, 40);
//gtk_widget_set_uposition (m_lbTel, 120, 72);
gtk_widget_set_usize (m_lbTel, 180, 20);
gtk_misc_set_alignment (GTK_MISC (m_lbTel), 7.45058e-009, 0.5);
m_lbName = gtk_label_new (_("Mr. dugu"));
gtk_widget_show (m_lbName);
gtk_fixed_put (GTK_FIXED (fixed1), m_lbName, 120, 5);
//gtk_widget_set_uposition (m_lbName, 120, 40);
gtk_widget_set_usize (m_lbName, 180, 20);
gtk_misc_set_alignment (GTK_MISC (m_lbName), 7.45058e-009, 0.5);
m_bClear = new CButton(_("清零"));
m_bClear->SetSize(50, 20);
gtk_fixed_put (GTK_FIXED (fixed1), m_bClear->GetHandle(), 240, 110);
return frame1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -