📄 record_tree.cpp~
字号:
#include "record_tree.h"//===============================================================================// FUNCTION update_record_tree// SYNOPSIS Creates the folderlist Fl_Toggle_Tree data from the currently// available mailboxes and their views.//// ARGUMENTS scr (Fl_Scroll *) Group the tree should be a part of.//// RETURNS function returns no data//===============================================================================int time_sort(Fl_Toggle_Node_Base*nod1, Fl_Toggle_Node_Base*nod2) { char *p1; char *p2; char buf1[128]; char buf2[128]; strcpy(buf1,((Fl_Toggle_Node*)nod1)->label()); strcpy(buf2,((Fl_Toggle_Node*)nod2)->label()); p1=strrchr(buf1,'\t'); p2=strrchr(buf2,'\t'); if (p1&&p2&&*p1&&*p2) return -strcmp(p1,p2); else return -1;}void update_record_tree (Fl_Scroll *scr){ int i; int x,y; char buf[512]; char buffer1[512]; char buffer2[1024]; FILE *IF; WordList W; int discard=0; int record_num=0; fl_mapcolor (FL_FREE_COL4,246,235,180 ); i = scr->children()-1; while (i>=2) { scr->remove(scr->child(i-2)); i--; } y = scr->y()+5; x = 0; scr->begin(); record_tree = new Fl_Toggle_Tree (15, scr->y()+2, scr->w() - 4, 100); record_tree->column_widths(wrecord); record_tree->textsize (16); record_tree->selection_color (209); record_tree->selection_label_color (FL_BLACK); record_tree->color(FL_FREE_COL5); record_tree->label_offset(35); record_tree->pixmap_offset(15); record_tree->edit_on_reselect (0); record_tree->column_char('\t'); scr->resizable (record_tree);//构造树 IF = fopen (LOG_FILE_NAME, "r"); if (IF) {printf("Get file ok\n"); while (!feof (IF)) { if (fgets(buf, 1024, IF) == NULL) break; if (buf[strlen(buf)-1] == '\n') record_num++; } fseek(IF,0,SEEK_SET); discard = 0; while (discard < record_num-100) { if (fgets(buf, 1024, IF) == NULL) break; if (buf[strlen(buf)-1] == '\n') discard++; } while (!feof (IF)) { buffer1[0] = 0; fgets (buffer1, 511, IF); choplf (buffer1); W.MakeDB (buffer1); if (W.Count == 4) { sprintf (buffer2, "%s\t%s\t%s\t%s\t%s", W.Get(0),ALERT_TYPE[atoi(W.Get(1))],DEVICE_TYPE[atoi(W.Get(2))],W.Get(3),W.Get(4)); record_tree->add_next (buffer2, 0, 0); } } fclose (IF); } ++x; record_tree->callback ((Fl_Callback *)cb_record_tree); record_tree->update_height(); record_tree->alternate_color(record_tree->color()); record_tree->trim_color (record_tree->color());// record_tree->alternate_color(FL_LIGHT2);// record_tree->trim_color(FL_LIGHT1);// record_tree->sort_tree(Fl_Toggle_Tree::sort_by_label); record_tree->sort_tree(time_sort); scr->end(); scr->redraw(); Fl::flush();}void cb_record_tree (Fl_Widget *b, void *v){ record_tree->unselect();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -