|
|
1.1 ! root 1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */ ! 2: ! 3: /* $Id: ClientFormUnit.cpp,v 1.1.1.1 2000/10/10 11:27:06 rswindell Exp $ */ ! 4: ! 5: /**************************************************************************** ! 6: * @format.tab-size 4 (Plain Text/Source Code File Header) * ! 7: * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * ! 8: * * ! 9: * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html * ! 10: * * ! 11: * This program is free software; you can redistribute it and/or * ! 12: * modify it under the terms of the GNU General Public License * ! 13: * as published by the Free Software Foundation; either version 2 * ! 14: * of the License, or (at your option) any later version. * ! 15: * See the GNU General Public License for more details: gpl.txt or * ! 16: * http://www.fsf.org/copyleft/gpl.html * ! 17: * * ! 18: * Anonymous FTP access to the most recent released source is available at * ! 19: * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net * ! 20: * * ! 21: * Anonymous CVS access to the development source and modification history * ! 22: * is available at cvs.synchro.net:/cvsroot/sbbs, example: * ! 23: * cvs -d :pserver:[email protected]:/cvsroot/sbbs login * ! 24: * (just hit return, no password is necessary) * ! 25: * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src * ! 26: * * ! 27: * For Synchronet coding style and modification guidelines, see * ! 28: * http://www.synchro.net/source.html * ! 29: * * ! 30: * You are encouraged to submit any modifications (preferably in Unix diff * ! 31: * format) via e-mail to [email protected] * ! 32: * * ! 33: * Note: If this box doesn't appear square, then you need to fix your tabs. * ! 34: ****************************************************************************/ ! 35: ! 36: //--------------------------------------------------------------------------- ! 37: ! 38: #include <vcl.h> ! 39: #pragma hdrstop ! 40: ! 41: #include <stdio.h> // sprintf ! 42: #include <winsock.h> // closesocket ! 43: #include "ClientFormUnit.h" ! 44: ! 45: void socket_open(BOOL open); ! 46: //--------------------------------------------------------------------------- ! 47: #pragma package(smart_init) ! 48: #pragma resource "*.dfm" ! 49: TClientForm *ClientForm; ! 50: //--------------------------------------------------------------------------- ! 51: __fastcall TClientForm::TClientForm(TComponent* Owner) ! 52: : TForm(Owner) ! 53: { ! 54: MainForm=(TMainForm*)Application->MainForm; ! 55: ListMutex=CreateMutex(NULL,false,NULL); ! 56: } ! 57: //--------------------------------------------------------------------------- ! 58: void __fastcall TClientForm::FormShow(TObject *Sender) ! 59: { ! 60: MainForm->ViewClients->Checked=true; ! 61: } ! 62: //--------------------------------------------------------------------------- ! 63: void __fastcall TClientForm::FormHide(TObject *Sender) ! 64: { ! 65: MainForm->ViewClients->Checked=false; ! 66: } ! 67: //--------------------------------------------------------------------------- ! 68: void __fastcall TClientForm::TimerTimer(TObject *Sender) ! 69: { ! 70: char str[64]; ! 71: int i; ! 72: time_t t; ! 73: ! 74: if(WaitForSingleObject(ListMutex,1)!=WAIT_OBJECT_0) ! 75: return; ! 76: for(i=0;i<ListView->Items->Count;i++) { ! 77: t=time(NULL)-(ulong)ListView->Items->Item[i]->Data; ! 78: if(t/(60*60)) ! 79: sprintf(str,"%d:%02d:%02d",t/(60*60),(t/60)%60,t%60); ! 80: else ! 81: sprintf(str,"%d:%02d",(t/60)%60,t%60); ! 82: ListView->Items->Item[i]->SubItems->Strings[5]=str; ! 83: ! 84: } ! 85: ReleaseMutex(ListMutex); ! 86: ! 87: } ! 88: //--------------------------------------------------------------------------- ! 89: ! 90: void __fastcall TClientForm::CloseSocketMenuItemClick(TObject *Sender) ! 91: { ! 92: TListItem* ListItem; ! 93: TItemStates State; ! 94: ! 95: ListItem=ListView->Selected; ! 96: State << isSelected; ! 97: ! 98: while(ListItem!=NULL) { ! 99: if(closesocket(atoi(ListItem->Caption.c_str()))==0) ! 100: socket_open(FALSE); ! 101: ListItem=ListView->GetNextItem(ListItem,sdAll,State); ! 102: } ! 103: } ! 104: //--------------------------------------------------------------------------- ! 105:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.