home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / ctenari / Krutak / univiewi_pdk.exe / generic / generic.cpp next >
C/C++ Source or Header  |  2001-12-30  |  3KB  |  127 lines

  1. #include "generic.h"
  2.  
  3. HWND uv_hwnd;
  4. int lang, active;
  5. HINSTANCE hI;
  6.  
  7. int uvplugin_init(up_initdata* updata)
  8. {
  9.     updata->items_count=1;
  10.     strcpy(updata->plugin_name, "UniView generic plugin (us|sk)");
  11.  
  12.     updata->up_menuitems[0].place=MENU_PLUGINS;
  13.     if (lang!=1)
  14.         strcpy(updata->up_menuitems[0].name, "Generic plugin");
  15.     else
  16.         strcpy(updata->up_menuitems[0].name, "Generick² plugin");
  17.  
  18.     updata->version_1=1;
  19.     updata->version_2=8;
  20.     return 0;
  21. }
  22.  
  23. int imageeffect(void)
  24. {
  25.     int xs, ys;
  26.     int i, j;
  27.     BYTE r, g, b;
  28.     BYTE r1, g1, b1;
  29.     CImage *img=(CImage *)UniView_doservice(PLGMSG_GETIMGCLASS, 0, 0);
  30.     if (img==NULL)
  31.             return 1;
  32.  
  33.     UniView_doservice(PLGMSG_IMAGEMAKEUNDO, 0, 0);
  34.  
  35.     UVImage_quantize(img, 300, 0);
  36.     xs=UVImage_getXSize(img);
  37.     ys=UVImage_getYSize(img);
  38.     
  39.     for (i=0; i<xs; i++) {
  40.         for (j=0; j<ys; j++) {
  41.             UVImage_getRGB(img, i, j, r, g, b);
  42.             UVImage_getRGB(img, xs-i-1, ys-j-1, r1, g1, b1);
  43.             UVImage_setRGB(img, i, j, (r+r1)/2, abs(g+g1)/2, (b+b1)/2);
  44.         }
  45.     }
  46.     UniView_doservice(PLGMSG_DOCUMENTCHANGED, 0, 0);
  47.     return 0;
  48. }
  49.  
  50. BOOL CALLBACK generic_dlgproc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  51. {
  52.     char buf[128];
  53.     switch (uMsg) {
  54.     case WM_INITDIALOG:
  55.         if (lang==1) {
  56.             SetWindowText(hDlg, "Ahoj svet!");
  57.             sprintf(buf, "Testova¥ typ %d", (int)UniView_doservice(PLGMSG_GETDOCTYPE, 0, 0));
  58.             SetDlgItemText(hDlg, IDC_BUTTON1, buf);
  59.         } else {
  60.             sprintf(buf, "Test type %d", (int)UniView_doservice(PLGMSG_GETDOCTYPE, 0, 0));
  61.             SetDlgItemText(hDlg, IDC_BUTTON1, buf);
  62.         }
  63.         active=1;
  64.         return TRUE;
  65.     case WM_DESTROY:
  66.         active=0;
  67.         return 0;
  68.     case WM_COMMAND:
  69.         switch (LOWORD(wParam)) {
  70.         case IDOK:
  71.             EndDialog(hDlg, 0);
  72.             return 0;
  73.         case IDC_BUTTON1:
  74.             switch ((int)UniView_doservice(PLGMSG_GETDOCTYPE, 0, 0)) {
  75.             case 1:
  76.                 if (imageeffect())
  77.                     MessageBox(hDlg, (lang==1)?"Nesprßvny typ s·boru":"Bad file type", "Generic", MB_OK);
  78.                 return 0;
  79.             default:
  80.                 MessageBox(hDlg, (lang==1)?"OstatnΘ funkcie zatia╛ neboli implementovanΘ":"Other functions weren't implemented yet", "Generic", MB_OK);
  81.                 return 0;
  82.             }
  83.             return 0;
  84.         }
  85.     }
  86.     return 0;
  87. }
  88.  
  89. int uvplugin_command(int command)
  90. {
  91.     switch (command) {
  92.     case 0:
  93.         DialogBox(hI, "TESTDLG", uv_hwnd, (DLGPROC)generic_dlgproc);
  94.         return 0;
  95.     }
  96.     return 0;
  97. }
  98.  
  99. int uvplugin_getsettings(void)
  100. {
  101.     uv_hwnd=(HWND)UniView_doservice(PLGMSG_GETUVHWND, 0, 0);
  102.     lang=(int)UniView_doservice(PLGMSG_GETLANG, 0, 0);
  103.     return 0;
  104. }
  105.  
  106. int __stdcall uvplugin_main(HINSTANCE plgI, DWORD message, DWORD wParam, DWORD lParam)
  107. {
  108.     switch (message) {
  109.     case UVMSG_INITPLUGIN:
  110.         hI=plgI;
  111.         active=0;
  112.         lang=(int)UniView_doservice(PLGMSG_GETLANG, 0, 0);
  113.         return uvplugin_init((up_initdata*)wParam);
  114.     case UVMSG_EXIT:
  115.         return 0;
  116.     case UVMSG_STOPEXIT:
  117.         return (active==0)?0:1;
  118.     case UVMSG_DOCUMENT_SAVED:
  119.     case UVMSG_DOCUMENT_NEWOPENED:
  120.     case UVMSG_SETTINGS_CHANGED:
  121.         uvplugin_getsettings();
  122.         return 0;
  123.     case UVMSG_COMMAND:
  124.         return uvplugin_command((int)wParam);
  125.     }
  126.     return 0;
  127. }