Subversion Repositories Kolibri OS

Rev

Rev 616 | Rev 643 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 616 Rev 619
Line 112... Line 112...
112
  {£®â®¢ ª ®¡à ¡®âª¥ ᮡë⨩}
112
  {£®â®¢ ª ®¡à ¡®âª¥ ᮡë⨩}
113
  Console^.FOpened := True;
113
  Console^.FOpened := True;
114
  while not Console^.FTerminate do
114
  while not Console^.FTerminate do
115
  begin
115
  begin
116
    Event := kos_getevent();
116
    Event := kos_getevent();
117
    if Console^.FTerminate then
117
    if not Console^.FTerminate then
118
      {Console^.ProcessMessage('[CONSOLE] Terminate...'#13#10)} else
-
 
119
    case Event of
118
    case Event of
120
      SE_PAINT: Console^.Paint();
119
      SE_PAINT: Console^.Paint();
121
      SE_KEYBOARD: Console^.ProcessKeyboard(kos_getkey());
120
      SE_KEYBOARD: Console^.ProcessKeyboard(kos_getkey());
122
      SE_IPC: while Console^.ReceiveMessage(Message) do Console^.ProcessMessage(Message);
121
      SE_IPC: while Console^.ReceiveMessage(Message) do Console^.ProcessMessage(Message);
123
    end;
122
    end;
Line 144... Line 143...
144
  FMaxLines := 150;
143
  FMaxLines := 150;
145
  FTerminate := False;
144
  FTerminate := False;
146
  FOpened := False;
145
  FOpened := False;
147
  FIPCBufferSize := SizeOf(TKosIPC) + IPC_SIZE;
146
  FIPCBufferSize := SizeOf(TKosIPC) + IPC_SIZE;
148
  FIPCBuffer := GetMem(FIPCBufferSize);
147
  FIPCBuffer := GetMem(FIPCBufferSize);
149
  {FIPCBufferSize := SizeOf(KonsoleIPCBuffer);
-
 
150
  FIPCBuffer := @KonsoleIPCBuffer;}
-
 
151
  FIPCBuffer^.Lock := False;
148
  FIPCBuffer^.Lock := False;
152
  FIPCBuffer^.Size := 0;
149
  FIPCBuffer^.Size := 0;
153
  FThreadSlot := -1;
150
  FThreadSlot := -1;
154
  FThreadID := BeginThread(TThreadFunc(@KonsoleThreadMain), @Self);
151
  FThreadID := BeginThread(TThreadFunc(@KonsoleThreadMain), @Self);
155
  if FThreadID <> 0 then
152
  if FThreadID <> 0 then
-
 
153
    {XXX: ¬®¦¥â § ¢¨á­ãâì}
156
    while not FOpened do kos_delay(1);
154
    while not FOpened do ThreadSwitch;
157
end;
155
end;
Line 158... Line 156...
158
 
156
 
159
destructor TKonsole.Done();
157
destructor TKonsole.Done();
160
begin
158
begin
161
  FTerminate := True;
-
 
162
  Self.Write(#0);
159
  FTerminate := True;
163
  if FOpened then kos_delay(1);
160
  if FOpened then begin Self.Write(#0); kos_delay(01); end;
164
  if FOpened then kos_delay(10);
161
  if FOpened then begin Self.Write(#0); kos_delay(10); end;
165
  if FOpened then kos_delay(20);
162
  if FOpened then begin Self.Write(#0); kos_delay(20); end;
166
  if FOpened then
163
  if FOpened then
167
  begin
164
  begin
168
    FOpened := False;
165
    FOpened := False;
169
    KillThread(FThreadID);
166
    KillThread(FThreadID);
Line 343... Line 340...
343
  I: Integer;
340
  I: Integer;
344
begin
341
begin
345
  {XXX: ¢®§¬®¦­  á¨âã æ¨ï ¯à¨ ª®â®à®© á®®¡é¥­¨¥ ­¥ ¡ã¤¥â ®â¯à ¢«¥­®}
342
  {XXX: ¢®§¬®¦­  á¨âã æ¨ï ¯à¨ ª®â®à®© á®®¡é¥­¨¥ ­¥ ¡ã¤¥â ®â¯à ¢«¥­®}
346
  if FOpened then
343
  if FOpened then
347
  begin
344
  begin
348
    I := 20;
345
    I := 100;
349
    while (kos_sendmsg(FThreadID, @Message[1], Length(Message)) = 2) and (I > 0) do
346
    while (kos_sendmsg(FThreadID, @Message[1], Length(Message)) = 2) and (I > 0) do
350
    begin
347
    begin
351
      Dec(I);
348
      Dec(I);
352
      ThreadSwitch;
349
      ThreadSwitch;
353
    end;
350
    end;