📄 notebook.cpp
字号:
// NoteBook.cpp: implementation of the CNoteBook class.
//
//////////////////////////////////////////////////////////////////////
#include "NoteBook.h"
#include "Win.h"
#include "messagebox.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CNoteBook::CNoteBook(CWidget* parent) : CWidget(parent)
{
m_nCallType = 0;
for(int i=0; i<5; i++)
m_pCif[i] = NULL;
m_pCallTimes = NULL;
m_pList = NULL;
m_hHandle = Create();
gtk_signal_connect (GTK_OBJECT (m_hHandle), "destroy",
GTK_SIGNAL_FUNC (on_widget_destroy),
this);
Show();
}
CNoteBook::~CNoteBook()
{
for(int i=0; i<5; i++){
if(m_pCif[i])
delete m_pCif[i];
m_pCif[i] = NULL;
}
if(m_pList)
delete m_pList;
m_pList = NULL;
if(m_pCallTimes)
delete m_pCallTimes;
m_pCallTimes = NULL;
if(m_Detail)
delete m_Detail;
m_Detail = NULL;
}
void CNoteBook::ShowDetail(int row)
{
if(row < 0){
m_Detail->UpdataDetail((CCallsInfo*) m_pCallTimes, -1);
}
else{
m_Detail->UpdataDetail(m_pCif[GetCallType()], row);
}
if(GetCurPage() != CNoteBook::detail){
SetPage(CNoteBook::detail);
gtk_widget_grab_focus(((CWin*)GetParent())->m_pToolbar->m_CloseButton->GetHandle());
}
}
void CNoteBook::ReLoadData()
{
for(int i=0; i<5; i++){
if(m_pCif[i])
delete m_pCif[i];
m_pCif[i] = NULL;
}
m_pCif[0] = new CCallsInfo(CCallsInfo::offen, MEMDATAFILEPATH OffenFileName);
m_pCif[1] = new CCallsInfo(CCallsInfo::missed, MEMDATAFILEPATH MissedFileName);
m_pCif[2] = new CCallsInfo(CCallsInfo::dialed, MEMDATAFILEPATH DialedFileName);
m_pCif[3] = new CCallsInfo(CCallsInfo::received, MEMDATAFILEPATH ReceivedFileName);
m_pCif[4] = new CCallsInfo(CCallsInfo::blacklist, MEMDATAFILEPATH BlacklistFileName);
if(m_pCallTimes)
delete m_pCallTimes;
m_pCallTimes = new CCallTimes(MEMDATAFILEPATH CallTimesFileName);
SetCallType(GetCallType(), true);
}
GtkWidget* CNoteBook::Create()
{
GtkWidget* notebook = gtk_notebook_new ();
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE);
// list
GtkWidget* scrolledwindow1;
GtkWidget* scrollbar = NULL;
scrolledwindow1 = gtk_scrolled_window_new ((GtkAdjustment*)NULL, (GtkAdjustment*)NULL);
gtk_widget_show (scrolledwindow1);
scrollbar = GTK_SCROLLED_WINDOW(scrolledwindow1)->vscrollbar;
GTK_RANGE_CLASS (GTK_OBJECT (GTK_RANGE(&(GTK_SCROLLBAR(scrollbar)->range)))->klass)->slider_width = 15;
GTK_RANGE_CLASS (GTK_OBJECT (GTK_RANGE(&(GTK_SCROLLBAR(scrollbar)->range)))->klass)->stepper_size = 15;
gtk_widget_destroy(scrolledwindow1);
scrolledwindow1 = gtk_scrolled_window_new ((GtkAdjustment*)NULL, (GtkAdjustment*)NULL);
gtk_widget_show (scrolledwindow1);
scrollbar = GTK_SCROLLED_WINDOW(scrolledwindow1)->vscrollbar;
gtk_widget_set_usize(scrollbar, 13, scrollbar->allocation.height);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolledwindow1, NULL);
gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow1), (unsigned)-1);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1),
GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
m_pList = new CList(this);
m_pList->set_double_click_row_func(GtkSignalFunc(on_clist_double_click_row), this);
gtk_container_add (GTK_CONTAINER (scrolledwindow1), m_pList->GetHandle());
//ReLoadData();
m_Detail = new CDetail(this);
gtk_container_add (GTK_CONTAINER (notebook), m_Detail->GetHandle());
gtk_signal_connect (GTK_OBJECT (m_Detail->m_bClear->GetHandle()), "clicked",
GTK_SIGNAL_FUNC (on_detail_clear_button_clicked),
this);
//gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0);
return notebook;
}
void CNoteBook::on_clist_double_click_row(CList* list, int row, gpointer user_data)
{
CNoteBook* nb = (CNoteBook*) user_data;
if(nb)
nb->ShowDetail(row);
}
void CNoteBook::on_detail_clear_button_clicked(GtkButton *button,
gpointer user_data)
{
CNoteBook* nb = (CNoteBook*) user_data;
if(nb){
if(MessageBox(_("你确认要把通话时长\n清零吗?"),
_("清零"), stock_question,
MB_Yes | MB_No)==ID_Yes)
{
nb->m_pCallTimes->Clear();
nb->ShowDetail(-1);
CCallsInfo::SyncDataFile();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -