⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 detail.cpp

📁 多媒体电话记录程序
💻 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 + -