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

📄 record_tree.cpp~

📁 用linux开发的安防暴警的有关代码
💻 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 + -