на deb пакеты жалуются.
подробнее пока не знаю, знаю что у меня doublecmd_0.3.5-1.gtk2_i386.deb "встал" но не запускается, только под рутом , после первого запуска из под рута запускается из под пользователя, но не закрывается.
			
		Модератор: Модераторы

 


ViTality писал(а):А что значит "навигация в стиле Lynx"?
И в этом разделе("Настройка/Параметры/Поведение") чекбоксы должны быть 3-х позиционные?
Да, хотелось бы нормальный(обычный) скролл колесиком мышки, чтоб прокручивался весь список файлов, а не курсор бегал. А то пока прокручишь его вниз...

Так это сейчас настраивается на вкладке "Поведение", правда не под всеми виджетсетами корректно работает
 меня чекбоксы отвлекли...
 меня чекбоксы отвлекли...
 , и видео показывает.
, и видео показывает.

Alexx2000 писал(а):Как сделать для QT4 вроде нашел, покапавшись в исходниках smplayer, нужно использовать QWidget::winId ()
Дома могу попробовать сделать...

uses
..................................
  x,
  {$IFDEF LCLGTK} gtk, gdk, glib, {$ENDIF}
  {$IFDEF LCLGTK2} gtk2, gdk2, glib2, gdk2x, {$ENDIF}
  {$IFDEF LCLQT} qt4, {$ENDIF}
................................................................
type
//Class implementing mplayer control
{ TMPlayer }
TMPlayer=class(TThread)
        public
          //---------------------
          hWidget:THandle;   //the integrable widget
          fileName:string;        //filename
          xid:TWindow;      //X window handle
          pr:TProcess;            //mplayer's process
          pmplayer:string;        //path to mplayer
          //---------------------
          constructor Create(AFilename:String);
          destructor destroy; override;
          procedure SetParentWidget(AWidget:thandle);
        protected
          procedure Execute; override;
        private
     end;
{ TMPlayer }
constructor TMPlayer.Create(AFilename:String);
var pf:TExProcess;
begin
  inherited Create(true);
  filename:='"'+AFilename+'"';
  pf:=TExProcess.Create('which mplayer');
  pf.Execute;
  pmplayer:=pf.RezList[0]+' ';
  pf.Free;
  writeln('PLUGIN : found mplayer in :' + pmplayer);
end;
destructor TMPlayer.destroy;
begin
  if pr.Running then
    pr.Terminate(0);
  pr.Free;
  inherited destroy;
end;
procedure TMPlayer.SetParentWidget(AWidget: THandle);
{$IFDEF LCLQT}
begin
  xid:= QWidget_winId(QWidgetH(AWidget));
  hWidget:= AWidget;
end;
{$ELSE}
var
   widget,
   mySocket:PGtkWidget;   //the socket
begin
  widget := gtk_vbox_new(FALSE,0);
  mySocket := gtk_socket_new();
  gtk_container_add (GTK_CONTAINER(widget), mySocket);
  gtk_widget_show(mySocket);
  gtk_widget_show(widget);
//*****
  gtk_container_add (GTK_CONTAINER (PGtkWidget(Awidget)), widget);
  gtk_widget_realize(mySocket);
  gtk_widget_hide(PGtkWidget(AWidget));
{$IFDEF LCLGTK}
  xid:=(PGdkWindowPrivate(widget^.window))^.xwindow;
{$ENDIF}
{$IFDEF LCLGTK2}
  xid:=GDK_WINDOW_XID(widget^.window);
{$ENDIF}
  hWidget:= THandle(widget);
end;
{$ENDIF}
procedure TMPlayer.Execute;
begin
   pr:=TProcess.Create(nil);
   pr.Options := Pr.Options + [poWaitOnExit,poNoConsole{,poUsePipes}]; //mplayer stops if poUsePipes used.
   pr.CommandLine:=pmplayer+fileName+' -wid '+IntToStr(xid);
   pr.Execute;
end;
.........................................................
function ListLoad(ParentWin:thandle;FileToLoad:pchar;ShowFlags:integer):thandle; stdcall;
var p:TMPlayer;
begin
   p:=TMPlayer.Create(string(FileToLoad));
   p.SetParentWidget(ParentWin);
   
   //Create list if none
   if not assigned(List) then
       List:=TStringList.Create;
   //add to list new plugin window and it's info
   List.AddObject(IntToStr(integer(p.hWidget)),TPlugInfo.Create);
   with TPlugInfo(List.Objects[List.Count-1]) do
     begin
       fFileToLoad:=FileToLoad;
       fShowFlags:=ShowFlags;
       AddControl(p);
     end;
     
Result:=integer(p.hWidget);
p.Resume;
end;

Alexx2000 писал(а):Так вроде сделал (пока не коммитил), работает и под QT4 (правда при закрытии падает) и под GTK2. Правда код какой-то корявый (или пойдет?):
 Причесать не проблема, главное чтоб работало.
 Причесать не проблема, главное чтоб работало.работает и под QT4 (правда при закрытии падает)
Вот только не знаю как лучше на каждый widgetset свой T(widgetset)Player класс или один на все (как в вышеприведенным примере). Пока различий не так много.
Alexx2000 писал(а):Планируешь добавить, в него что-нибудь еще?

Alexx2000 писал(а):QT4 (правда при закрытии падает)
 FreeLibrary(FModuleHandle);

alexs писал(а):Вынеси код, зависимый от виджета в различные инклуды - будет проще.
B4rr4cuda писал(а):Мне другое интересно - будет ли этот плаг работать, если он будет запущен в панели быстрого просмотра (которая рано или поздно будет реализована)?
B4rr4cuda писал(а):Alexx2000 писал(а):QT4 (правда при закрытии падает)
Ппц. Оказываеться креш приложения вызывает
- Код: Выделить всё
FreeLibrary(FModuleHandle);
если вызывается при закрытии окна.

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1