summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Plugins/emoticons/Docs/emoticons_changelog.txt3
-rw-r--r--Plugins/emoticons/Docs/emoticons_readme.txt2
-rw-r--r--Plugins/emoticons/Docs/emoticons_version.txt2
-rw-r--r--Plugins/emoticons/OleImage.cpp329
-rw-r--r--Plugins/emoticons/OleImage.h9
-rw-r--r--Plugins/emoticons/commons.h11
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep445
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep2
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.pngbin0 -> 408 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.pngbin0 -> 604 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.pngbin0 -> 591 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.pngbin0 -> 600 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.pngbin0 -> 497 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.pngbin0 -> 488 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.pngbin0 -> 428 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.pngbin0 -> 575 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.pngbin0 -> 506 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.pngbin0 -> 647 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.pngbin0 -> 403 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.pngbin0 -> 673 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.pngbin0 -> 524 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.pngbin0 -> 589 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.pngbin0 -> 585 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.pngbin0 -> 504 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.pngbin0 -> 449 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.pngbin0 -> 497 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.pngbin0 -> 462 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.pngbin0 -> 457 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.pngbin0 -> 675 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.pngbin0 -> 486 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.pngbin0 -> 611 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.pngbin0 -> 639 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.pngbin0 -> 500 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.pngbin0 -> 526 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.pngbin0 -> 631 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.pngbin0 -> 443 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.pngbin0 -> 514 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.pngbin0 -> 600 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.pngbin0 -> 628 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.pngbin0 -> 625 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.pngbin0 -> 528 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.pngbin0 -> 614 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.pngbin0 -> 521 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.pngbin0 -> 367 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.pngbin0 -> 453 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.pngbin0 -> 586 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.pngbin0 -> 450 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.pngbin0 -> 525 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.pngbin0 -> 472 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.pngbin0 -> 483 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.pngbin0 -> 477 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.pngbin0 -> 439 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.pngbin0 -> 563 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.pngbin0 -> 529 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.pngbin0 -> 608 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.pngbin0 -> 428 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.pngbin0 -> 476 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.pngbin0 -> 572 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.pngbin0 -> 495 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.pngbin0 -> 620 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.pngbin0 -> 582 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.pngbin0 -> 500 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.pngbin0 -> 429 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.pngbin0 -> 465 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.pngbin0 -> 653 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.pngbin0 -> 469 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.pngbin0 -> 592 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.pngbin0 -> 479 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.pngbin0 -> 489 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.pngbin0 -> 610 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.pngbin0 -> 648 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.pngbin0 -> 552 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.pngbin0 -> 474 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.pngbin0 -> 489 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.pngbin0 -> 599 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.pngbin0 -> 637 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.pngbin0 -> 594 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.pngbin0 -> 490 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.pngbin0 -> 463 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.pngbin0 -> 470 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.pngbin0 -> 493 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.pngbin0 -> 480 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.pngbin0 -> 488 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.pngbin0 -> 487 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.pngbin0 -> 493 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.pngbin0 -> 509 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.pngbin0 -> 516 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.pngbin0 -> 645 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.pngbin0 -> 673 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.pngbin0 -> 524 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.pngbin0 -> 487 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.pngbin0 -> 432 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.pngbin0 -> 430 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.pngbin0 -> 481 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.pngbin0 -> 431 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.pngbin0 -> 503 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.pngbin0 -> 658 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.pngbin0 -> 515 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.pngbin0 -> 512 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.pngbin0 -> 532 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.pngbin0 -> 637 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.pngbin0 -> 473 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.pngbin0 -> 569 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.pngbin0 -> 510 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.pngbin0 -> 549 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.pngbin0 -> 656 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.pngbin0 -> 577 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.pngbin0 -> 604 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.pngbin0 -> 561 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.pngbin0 -> 592 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.pngbin0 -> 486 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.pngbin0 -> 616 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.pngbin0 -> 563 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.pngbin0 -> 517 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.pngbin0 -> 520 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.pngbin0 -> 627 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.pngbin0 -> 466 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.pngbin0 -> 628 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.pngbin0 -> 481 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.pngbin0 -> 465 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.pngbin0 -> 419 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.pngbin0 -> 432 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.pngbin0 -> 380 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.pngbin0 -> 566 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.pngbin0 -> 448 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.pngbin0 -> 453 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.pngbin0 -> 628 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.pngbin0 -> 664 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.pngbin0 -> 474 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.pngbin0 -> 483 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.pngbin0 -> 492 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.pngbin0 -> 588 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.pngbin0 -> 597 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.pngbin0 -> 655 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.pngbin0 -> 569 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.pngbin0 -> 614 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.pngbin0 -> 496 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.pngbin0 -> 542 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.pngbin0 -> 529 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.pngbin0 -> 574 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.pngbin0 -> 571 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.pngbin0 -> 584 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.pngbin0 -> 647 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.pngbin0 -> 591 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.pngbin0 -> 537 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.pngbin0 -> 602 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.pngbin0 -> 482 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.pngbin0 -> 508 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.pngbin0 -> 453 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.pngbin0 -> 512 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.pngbin0 -> 443 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.pngbin0 -> 572 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.pngbin0 -> 639 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.pngbin0 -> 478 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.pngbin0 -> 519 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.pngbin0 -> 397 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.pngbin0 -> 498 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.pngbin0 -> 538 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.pngbin0 -> 569 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.pngbin0 -> 374 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.pngbin0 -> 689 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.pngbin0 -> 657 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.pngbin0 -> 556 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.pngbin0 -> 472 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.pngbin0 -> 554 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.pngbin0 -> 550 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.pngbin0 -> 473 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.pngbin0 -> 450 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.pngbin0 -> 545 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.pngbin0 -> 495 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.pngbin0 -> 423 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.pngbin0 -> 420 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.pngbin0 -> 533 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.pngbin0 -> 551 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.pngbin0 -> 624 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.pngbin0 -> 608 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.pngbin0 -> 492 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.pngbin0 -> 542 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.pngbin0 -> 468 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.pngbin0 -> 645 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.pngbin0 -> 510 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.pngbin0 -> 562 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.pngbin0 -> 436 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.pngbin0 -> 502 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.pngbin0 -> 532 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.pngbin0 -> 513 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.pngbin0 -> 584 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.pngbin0 -> 501 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.pngbin0 -> 422 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.pngbin0 -> 643 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.pngbin0 -> 624 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.pngbin0 -> 570 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.pngbin0 -> 527 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.pngbin0 -> 562 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.pngbin0 -> 452 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.pngbin0 -> 496 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.pngbin0 -> 638 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.pngbin0 -> 514 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.pngbin0 -> 495 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.pngbin0 -> 426 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.pngbin0 -> 492 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.pngbin0 -> 617 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.pngbin0 -> 536 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.pngbin0 -> 465 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.pngbin0 -> 642 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.pngbin0 -> 446 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.pngbin0 -> 531 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.pngbin0 -> 609 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.pngbin0 -> 532 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.pngbin0 -> 515 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.pngbin0 -> 553 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.pngbin0 -> 577 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.pngbin0 -> 528 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.pngbin0 -> 630 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.pngbin0 -> 616 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.pngbin0 -> 474 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.pngbin0 -> 604 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.pngbin0 -> 554 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.pngbin0 -> 476 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.pngbin0 -> 413 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.pngbin0 -> 593 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.pngbin0 -> 642 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.pngbin0 -> 500 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.pngbin0 -> 574 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/money.png (renamed from Plugins/emoticons/data/Customize/Emoticons/Tango/coins.png)bin1330 -> 1330 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/talking.pngbin0 -> 1257 bytes
-rw-r--r--Plugins/emoticons/data/Customize/Emoticons/Tango/usa.pngbin540 -> 0 bytes
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/MSN.emo2
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo18
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/Skype.emo333
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo9
-rw-r--r--Plugins/emoticons/data/Plugins/Emoticons/downloading.gifbin1849 -> 0 bytes
-rw-r--r--Plugins/emoticons/emoticons.cpp380
-rw-r--r--Plugins/emoticons/emoticons.dsp8
-rw-r--r--Plugins/emoticons/flash9e.tlh338
-rw-r--r--Plugins/emoticons/selwin.cpp8
-rw-r--r--Plugins/emoticons/selwin.h1
259 files changed, 1845 insertions, 55 deletions
diff --git a/Plugins/emoticons/Docs/emoticons_changelog.txt b/Plugins/emoticons/Docs/emoticons_changelog.txt
index 3faea7b..1432e6a 100644
--- a/Plugins/emoticons/Docs/emoticons_changelog.txt
+++ b/Plugins/emoticons/Docs/emoticons_changelog.txt
@@ -4,6 +4,9 @@ Changelog:
. 0.0.1.6
+ Allow URLs in emoticon packs
+ + Flash emoticons
+ + Added Skype and Sametime emoticons
+ + Option to select which frame to show in selection window (for animated gif and swf)
. 0.0.1.5
+ Added MySpace and AIM emoticons
diff --git a/Plugins/emoticons/Docs/emoticons_readme.txt b/Plugins/emoticons/Docs/emoticons_readme.txt
index 824bfac..f4df80b 100644
--- a/Plugins/emoticons/Docs/emoticons_readme.txt
+++ b/Plugins/emoticons/Docs/emoticons_readme.txt
@@ -26,7 +26,7 @@ Creator: <Artist name>
Updater URL: <URL for updating this pack - not yet implemented>
Also, the mep file can expecify the filename for an emoticon, in a line like:
-"<The unique name of the emoticon>" = "<Relative path from pack foler>"
+"<The unique name of the emoticon>" = "<Relative path from pack foler>", <Frame number, starting in 1 - optional>
For example:
"smile" = "01.gif"
This will affect all protocols. If you want to change the image for a protocol only, you can write:
diff --git a/Plugins/emoticons/Docs/emoticons_version.txt b/Plugins/emoticons/Docs/emoticons_version.txt
index cb5f25a..3fdee38 100644
--- a/Plugins/emoticons/Docs/emoticons_version.txt
+++ b/Plugins/emoticons/Docs/emoticons_version.txt
@@ -1 +1 @@
-Emoticons 0.0.1.5 \ No newline at end of file
+Emoticons 0.0.1.6 \ No newline at end of file
diff --git a/Plugins/emoticons/OleImage.cpp b/Plugins/emoticons/OleImage.cpp
index 538545b..e661353 100644
--- a/Plugins/emoticons/OleImage.cpp
+++ b/Plugins/emoticons/OleImage.cpp
@@ -12,6 +12,253 @@ typedef map<UINT_PTR, OleImage *> ImageTimerMapType;
static ImageTimerMapType timers;
+class FlashWrapper : virtual public IOleClientSite,
+ virtual public IOleInPlaceSiteWindowless,
+ virtual public IOleInPlaceFrame,
+ virtual public IStorage
+{
+public:
+ SIZE size;
+ RECT pos;
+ OleImage *owner;
+ IShockwaveFlash *flash;
+ IOleObject *flashOleObject;
+ IViewObjectEx *flashViewObject;
+ IOleInPlaceObjectWindowless *flashInPlaceObjWindowless;
+
+ FlashWrapper(OleImage *anOwner, const char *filename)
+ {
+ flash = NULL;
+ flashOleObject = NULL;
+ flashViewObject = NULL;
+ flashInPlaceObjWindowless = NULL;
+
+ owner = anOwner;
+
+ HRESULT hr;
+ long readyState;
+ double val;
+
+ hr = OleCreate(__uuidof(ShockwaveFlash), IID_IOleObject, OLERENDER_DRAW, 0,
+ (IOleClientSite *) this, (IStorage *) this, (void **) &flashOleObject);
+ if (FAILED(hr)) goto err;
+
+ hr = OleSetContainedObject(flashOleObject, TRUE);
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->QueryInterface(__uuidof(IShockwaveFlash), (void **) &flash);
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->QueryInterface(__uuidof(IViewObjectEx), (void **) &flashViewObject);
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->QueryInterface(__uuidof(IOleInPlaceObjectWindowless), (void **) &flashInPlaceObjWindowless);
+ if (FAILED(hr)) goto err;
+
+ flash->put_WMode(L"transparent");
+ //flash->put_Scale(L"showAll");
+ flash->put_ScaleMode(0);
+ flash->put_BackgroundColor(0x00000000);
+ flash->put_EmbedMovie(TRUE);
+ flash->put_Loop(TRUE);
+
+ {
+ WCHAR *tmp = mir_a2u(filename);
+ BSTR url = SysAllocString(tmp);
+
+ hr = flash->LoadMovie(0, url);
+
+ SysFreeString(url);
+ mir_free(tmp);
+ }
+ if (FAILED(hr)) goto err;
+
+ hr = flash->get_ReadyState(&readyState);
+ if (FAILED(hr)) goto err;
+ if (readyState != 3 && readyState != 4) goto err;
+
+ hr = flash->TGetPropertyAsNumber(L"/", 8, &val);
+ if (FAILED(hr)) goto err;
+ size.cx = (long)(val + 0.5);
+
+ hr = flash->TGetPropertyAsNumber(L"/", 9, &val);
+ if (FAILED(hr)) goto err;
+ size.cy = (long)(val + 0.5);
+
+ pos.left = 0;
+ pos.top = 0;
+ pos.right = size.cx;
+ pos.bottom = size.cy;
+
+ flashInPlaceObjWindowless->SetObjectRects(&pos, &pos);
+
+ hr = flash->Play();
+ if (FAILED(hr)) goto err;
+
+ hr = flashOleObject->DoVerb(OLEIVERB_SHOW, NULL, (IOleClientSite *) this, 0, NULL, NULL);
+ if (FAILED(hr)) goto err;
+
+ return;
+
+err:
+ Destroy();
+ }
+
+ virtual ~FlashWrapper()
+ {
+ Destroy();
+ }
+
+ void Destroy()
+ {
+ if (flashOleObject != NULL)
+ flashOleObject->Close(OLECLOSE_NOSAVE);
+ RELEASE(flashViewObject)
+ RELEASE(flashInPlaceObjWindowless)
+ RELEASE(flashOleObject)
+ RELEASE(flash)
+ }
+
+ BOOL isValid()
+ {
+ return flash != NULL;
+ }
+
+ void SetPos(const RECT &aPos)
+ {
+ if (!isValid())
+ return;
+
+ pos = aPos;
+ flashInPlaceObjWindowless->SetObjectRects(&pos, &pos);
+ }
+
+ void Draw(HDC hdc)
+ {
+ if (!isValid())
+ return;
+
+ OleDraw(flashViewObject, DVASPECT_TRANSPARENT, hdc, &pos);
+ }
+
+
+ //interface methods
+
+ //IUnknown
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject)
+ {
+ if (IsEqualGUID(riid, IID_IUnknown))
+ *ppvObject = (void*)(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceSite))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceSite *>(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceSiteEx))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceSiteEx *>(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceSiteWindowless))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceSiteWindowless *>(this);
+ else if (IsEqualGUID(riid, IID_IStorage))
+ *ppvObject = (void*)dynamic_cast<IStorage *>(this);
+ else if (IsEqualGUID(riid, IID_IOleInPlaceFrame))
+ *ppvObject = (void*)dynamic_cast<IOleInPlaceFrame *>(this);
+ else
+ *ppvObject = 0;
+ if (!(*ppvObject))
+ return E_NOINTERFACE; //if dynamic_cast returned 0
+ return S_OK;
+ }
+ ULONG STDMETHODCALLTYPE AddRef() { return 1; }
+ ULONG STDMETHODCALLTYPE Release() { return 1; }
+
+
+ //IOleClientSite
+ virtual HRESULT STDMETHODCALLTYPE SaveObject() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER FAR* ppContainer) { *ppContainer = 0; return E_NOINTERFACE; }
+ virtual HRESULT STDMETHODCALLTYPE ShowObject() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnShowWindow(BOOL fShow) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout() { return E_NOTIMPL; }
+
+ //IOleInPlaceSite
+ virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND FAR* lphwnd){ *lphwnd = 0; return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE CanInPlaceActivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnUIActivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE GetWindowContext(LPOLEINPLACEFRAME FAR* lplpFrame,LPOLEINPLACEUIWINDOW FAR* lplpDoc,LPRECT lprcPosRect,LPRECT lprcClipRect,LPOLEINPLACEFRAMEINFO lpFrameInfo)
+ {
+ *lplpFrame = (LPOLEINPLACEFRAME)this;
+
+ *lplpDoc = 0;
+
+ lpFrameInfo->fMDIApp = FALSE;
+ lpFrameInfo->hwndFrame = 0;
+ lpFrameInfo->haccel = 0;
+ lpFrameInfo->cAccelEntries = 0;
+
+ *lprcPosRect = pos;
+ *lprcClipRect = pos;
+ return S_OK;
+ }
+ virtual HRESULT STDMETHODCALLTYPE Scroll(SIZE scrollExtent) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OnUIDeactivate(BOOL fUndoable) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate() { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE DiscardUndoState() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE DeactivateAndUndo() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OnPosRectChange(LPCRECT lprcPosRect) { return S_OK; }
+
+ //IOleInPlaceSiteEx
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivateEx(BOOL __RPC_FAR *pfNoRedraw, DWORD dwFlags) { if (pfNoRedraw) *pfNoRedraw = FALSE; return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivateEx(BOOL fNoRedraw) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE RequestUIActivate(void) { return S_FALSE; }
+
+ //IOleInPlaceSiteWindowless
+ virtual HRESULT STDMETHODCALLTYPE CanWindowlessActivate(void) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE GetCapture(void) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE SetCapture(BOOL fCapture) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE GetFocus(void) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE SetFocus(BOOL fFocus) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE GetDC(LPCRECT pRect, DWORD grfFlags, HDC __RPC_FAR *phDC) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE ReleaseDC(HDC hDC) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE InvalidateRect(LPCRECT pRect,BOOL fErase)
+ {
+ owner->OnImageChange();
+ return S_OK;
+ }
+ virtual HRESULT STDMETHODCALLTYPE InvalidateRgn(HRGN hRGN, BOOL fErase) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE ScrollRect(INT dx, INT dy, LPCRECT pRectScroll, LPCRECT pRectClip) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE AdjustRect(LPRECT prc) { return S_FALSE; }
+ virtual HRESULT STDMETHODCALLTYPE OnDefWindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT __RPC_FAR *plResult) { return S_FALSE; }
+
+ //IOleInPlaceFrame
+ virtual HRESULT STDMETHODCALLTYPE GetBorder(LPRECT lprectBorder) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE RequestBorderSpace(LPCBORDERWIDTHS pborderwidths) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetBorderSpace(LPCBORDERWIDTHS pborderwidths) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetActiveObject(IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE InsertMenus(HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetMenu(HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE RemoveMenus(HMENU hmenuShared) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetStatusText(LPCOLESTR pszStatusText) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg, WORD wID) { return E_NOTIMPL; }
+
+ //IStorage
+ virtual HRESULT STDMETHODCALLTYPE CreateStream(const WCHAR *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OpenStream(const WCHAR * pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE CreateStorage(const WCHAR *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStorage **ppstg) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE OpenStorage(const WCHAR * pwcsName, IStorage * pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE CopyTo(DWORD ciidExclude, IID const *rgiidExclude, SNB snbExclude,IStorage *pstgDest) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE MoveElementTo(const OLECHAR *pwcsName,IStorage * pstgDest, const OLECHAR *pwcsNewName, DWORD grfFlags) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE Commit(DWORD grfCommitFlags) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE Revert() { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE EnumElements(DWORD reserved1, void * reserved2, DWORD reserved3, IEnumSTATSTG ** ppenum) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE DestroyElement(const OLECHAR *pwcsName) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE RenameElement(const WCHAR *pwcsOldName, const WCHAR *pwcsNewName) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetElementTimes(const WCHAR *pwcsName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE SetClass(REFCLSID clsid) { return S_OK; }
+ virtual HRESULT STDMETHODCALLTYPE SetStateBits(DWORD grfStateBits, DWORD grfMask) { return E_NOTIMPL; }
+ virtual HRESULT STDMETHODCALLTYPE Stat(STATSTG * pstatstg, DWORD grfStatFlag) { return E_NOTIMPL; }
+
+
+};
OleImage::OleImage(const char *aFilename, const TCHAR *aText, const TCHAR *aTooltip)
@@ -23,6 +270,7 @@ OleImage::OleImage(const char *aFilename, const TCHAR *aText, const TCHAR *aTool
filename = mir_strdup(aFilename);
text = mir_tstrdup(aText);
closed = FALSE;
+ animated = FALSE;
if (aTooltip == NULL)
tooltip = NULL;
@@ -37,6 +285,7 @@ OleImage::OleImage(const char *aFilename, const TCHAR *aText, const TCHAR *aTool
#endif
}
+ flashWrapper = NULL;
clientSite = NULL;
oleAdviseHolder = NULL;
viewAdviseSink = NULL;
@@ -109,10 +358,13 @@ BOOL OleImage::LoadImages()
sizel.cx = 0;
sizel.cy = 0;
- animated = LoadAnimatedGif();
- if (!animated)
- if (!LoadStaticImage())
- return FALSE;
+ if (!LoadFlash())
+ {
+ animated = LoadAnimatedGif();
+ if (!animated)
+ if (!LoadStaticImage())
+ return FALSE;
+ }
return TRUE;
}
@@ -120,7 +372,11 @@ BOOL OleImage::LoadImages()
void OleImage::DestroyImages()
{
- if (animated)
+ if (flashWrapper)
+ {
+ DestroyFlash();
+ }
+ else if (animated)
{
DestroyAnimatedGif();
}
@@ -149,7 +405,7 @@ const TCHAR * OleImage::GetText() const
BOOL OleImage::isValid() const
{
- return animated || si.hBmp != NULL;
+ return flashWrapper || animated || si.hBmp != NULL;
}
@@ -416,7 +672,13 @@ HRESULT STDMETHODCALLTYPE OleImage::Draw(/* [in] */ DWORD dwDrawAspect, /* [in]
int w = min(lprcBounds->right - lprcBounds->left, width);
int h = min(lprcBounds->bottom - lprcBounds->top, height);
- if (animated)
+ if (flashWrapper)
+ {
+ RECT r = { lprcBounds->left, lprcBounds->top, lprcBounds->right, lprcBounds->bottom };
+ flashWrapper->SetPos(r);
+ flashWrapper->Draw(hdcDraw);
+ }
+ else if (animated)
{
if (!ag.started)
AnimatedGifMountFrame();
@@ -865,19 +1127,22 @@ void OleImage::OnTimer()
{
KillTimer();
- // Move to next frame
- AnimatedGifDispodeFrame();
-
- int frame = ag.frame.num + 1;
- if (frame >= ag.frameCount)
+ if (animated)
{
- // Don't need fi data no more
- AnimatedGifDeleteTmpValues();
- frame = 0;
- }
+ // Move to next frame
+ AnimatedGifDispodeFrame();
+
+ int frame = ag.frame.num + 1;
+ if (frame >= ag.frameCount)
+ {
+ // Don't need fi data no more
+ AnimatedGifDeleteTmpValues();
+ frame = 0;
+ }
- ag.frame.num = frame;
- ag.started = FALSE;
+ ag.frame.num = frame;
+ ag.started = FALSE;
+ }
OnImageChange();
}
@@ -916,3 +1181,31 @@ void OleImage::KillTimer()
ag.timer = NULL;
}
}
+
+
+BOOL OleImage::LoadFlash()
+{
+ if (strcmp(&filename[strlen(filename)-4], ".swf") != 0)
+ return FALSE;
+
+ flashWrapper = new FlashWrapper(this, filename);
+ if (!flashWrapper->isValid())
+ {
+ DestroyFlash();
+ return FALSE;
+ }
+
+ width = flashWrapper->size.cx;
+ height = flashWrapper->size.cy;
+
+ return TRUE;
+}
+
+BOOL OleImage::DestroyFlash()
+{
+// delete flashWrapper;
+ flashWrapper->Destroy();
+ flashWrapper = NULL;
+
+ return TRUE;
+}
diff --git a/Plugins/emoticons/OleImage.h b/Plugins/emoticons/OleImage.h
index b91c15f..ef248a2 100644
--- a/Plugins/emoticons/OleImage.h
+++ b/Plugins/emoticons/OleImage.h
@@ -25,6 +25,8 @@ Boston, MA 02111-1307, USA.
// {2FD9449B-7EBB-476a-A9DD-AE61382CCE08}
static const GUID IID_IOleImage = { 0x2fd9449b, 0x7ebb, 0x476a, { 0xa9, 0xdd, 0xae, 0x61, 0x38, 0x2c, 0xce, 0x8 } };
+class FlashWrapper;
+
class OleImage : public IOleObject, public IViewObject, public ITooltipData
{
public:
@@ -79,6 +81,8 @@ public:
virtual HRESULT STDMETHODCALLTYPE SetTooltip(/* [in] */ BSTR aTooltip);
virtual HRESULT STDMETHODCALLTYPE GetTooltip(/* [out, retval] */ BSTR * aTooltip);
+ void OnImageChange();
+
protected:
char *filename;
TCHAR *text;
@@ -96,6 +100,8 @@ protected:
DWORD viewAdvf;
SIZEL sizel;
+ FlashWrapper *flashWrapper;
+
BOOL LoadImages();
void DestroyImages();
void CalcSize();
@@ -103,7 +109,6 @@ protected:
void KillTimer();
void Invalidate();
void SendOnViewChage();
- void OnImageChange();
void NotifyHpp();
BOOL LoadStaticImage();
@@ -113,6 +118,8 @@ protected:
void AnimatedGifDispodeFrame();
void AnimatedGifDeleteTmpValues();
void DestroyAnimatedGif();
+ BOOL LoadFlash();
+ BOOL DestroyFlash();
struct
{
diff --git a/Plugins/emoticons/commons.h b/Plugins/emoticons/commons.h
index 84d0abe..f36ba8a 100644
--- a/Plugins/emoticons/commons.h
+++ b/Plugins/emoticons/commons.h
@@ -32,6 +32,7 @@ Boston, MA 02111-1307, USA.
#include <richedit.h>
#include <tom.h>
#include <richole.h>
+#include "flash9e.tlh"
// Disable "...truncated to '255' characters in the debug information" warnings
@@ -92,8 +93,10 @@ extern PLUGINLINK *pluginLink;
extern FI_INTERFACE *fei;
extern HANDLE hChangedEvent;
-#define MIR_FREE(_X_) { mir_free(_X_); _X_ = NULL; }
#define MAX_REGS(_A_) ( sizeof(_A_) / sizeof(_A_[0]) )
+#define MIR_FREE(_X_) if (_X_ != NULL) { mir_free(_X_); _X_ = NULL; }
+#define RELEASE(_X_) if (_X_ != NULL) { _X_->Release(); _X_ = NULL; }
+
struct EmoticonPack;
@@ -108,8 +111,9 @@ struct EmoticonImage
// For selection window
HBITMAP img;
BOOL transparent;
+ int selectionFrame;
- EmoticonImage() : name(0), relPath(0), img(0), module(0), url(0) {}
+ EmoticonImage() : name(0), relPath(0), img(0), module(0), url(0), selectionFrame(0) {}
~EmoticonImage();
void Download();
@@ -124,13 +128,14 @@ struct Emoticon
{
char *name;
TCHAR *description;
+ char *group;
LIST<TCHAR> texts;
EmoticonImage *img;
// For selection window
HWND tt;
- Emoticon() : name(0), description(0), texts(20), img(0), tt(0) {}
+ Emoticon() : name(0), description(0), group(0), texts(20), img(0), tt(0) {}
~Emoticon();
};
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep b/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep
index c33a3ee..c8421c0 100644
--- a/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep
+++ b/Plugins/emoticons/data/Customize/Emoticons/Originals/Originals.mep
@@ -1,7 +1,7 @@
Name: Original emoticons
# Google Talk
-"JGMAIL\smile" = "http://mail.google.com/mail/im/emoticons/smile.gif"
+"JGMAIL\smile" = "http://mail.google.com/mail/im/emoticons/smile.gif", 10
"JGMAIL\laugh" = "http://mail.google.com/mail/im/emoticons/grin.gif"
"JGMAIL\wink" = "http://mail.google.com/mail/im/emoticons/wink.gif"
"JGMAIL\crying" = "http://mail.google.com/mail/im/emoticons/cry.gif"
@@ -14,7 +14,8 @@ Name: Original emoticons
"JGMAIL\love" = "http://mail.google.com/mail/im/emoticons/heart.gif"
"JGMAIL\neutral" = "http://mail.google.com/mail/im/emoticons/straightface.gif"
"JGMAIL\monkey" = "http://mail.google.com/mail/im/emoticons/monkey.gif"
-"JGMAIL\rock" = "http://mail.google.com/mail/im/emoticons/rockout.gif"
+"JGMAIL\rock" = "http://mail.google.com/mail/im/emoticons/rockout.gif"
+"JGMAIL\love-over" = "http://talkgadget.google.com/talkgadget/emo/tg/common/heart_broken.swf", 10x10, 10
# MSN
# http://messenger.msn.com/Resource/Emoticons.aspx
@@ -86,4 +87,442 @@ Name: Original emoticons
"MSN\mobile" = "http://messenger.msn.com/Resource/emoticons/64_64.gif"
"MSN\rain" = "http://messenger.msn.com/Resource/emoticons/66_66.gif"
"MSN\thunder" = "http://messenger.msn.com/Resource/emoticons/73_73.gif"
-"MSN\coins" = "http://messenger.msn.com/Resource/emoticons/69_69.gif"
+"MSN\money" = "http://messenger.msn.com/Resource/emoticons/69_69.gif"
+
+# Yahoo
+# http://messenger.yahoo.com/emoticons.php
+# http://messenger.yahoo.com/hiddenemoticons.php
+"YAHOO\smile" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif"
+"YAHOO\sad" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/2.gif"
+"YAHOO\wink" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/3.gif"
+"YAHOO\smile-big" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif"
+"YAHOO\lashes" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/5.gif"
+"YAHOO\hug-left" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/6.gif"
+"YAHOO\question" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/7.gif"
+"YAHOO\in-love" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/8.gif"
+"YAHOO\embarrassed" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif"
+"YAHOO\tongue" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/10.gif"
+"YAHOO\kiss" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/11.gif"
+"YAHOO\love-over" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/12.gif"
+"YAHOO\shock" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/13.gif"
+"YAHOO\angry" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/14.gif"
+"YAHOO\mean" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/15.gif"
+"YAHOO\glass-cool" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/16.gif"
+"YAHOO\confused" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/17.gif"
+"YAHOO\sweat" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/18.gif"
+"YAHOO\devilish" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/19.gif"
+"YAHOO\crying" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/20.gif"
+"YAHOO\laugh" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/21.gif"
+"YAHOO\neutral" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/22.gif"
+"YAHOO\sarcastic" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/23.gif"
+"YAHOO\rotfl" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/24.gif"
+"YAHOO\angel" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/25.gif"
+"YAHOO\glass-nerdy" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/26.gif"
+"YAHOO\talktohand" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/27.gif"
+"YAHOO\call-me" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/101.gif"
+"YAHOO\on-the-phone" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/100.gif"
+"YAHOO\desperate" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/102.gif"
+"YAHOO\bye" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/103.gif"
+"YAHOO\time-out" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/104.gif"
+"YAHOO\desire" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/105.gif"
+"YAHOO\sleepy" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/28.gif"
+"YAHOO\eyeroll" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/29.gif"
+"YAHOO\loser" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/30.gif"
+"YAHOO\sick" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/31.gif"
+"YAHOO\quiet" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/32.gif"
+"YAHOO\arrogant" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/33.gif"
+"YAHOO\clown" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/34.gif"
+"YAHOO\silly" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/35.gif"
+"YAHOO\party" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/36.gif"
+"YAHOO\yawn" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/37.gif"
+"YAHOO\drool" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/38.gif"
+"YAHOO\thinking" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/39.gif"
+"YAHOO\doh" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/40.gif"
+"YAHOO\clap" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/41.gif"
+"YAHOO\nailbiting" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/42.gif"
+"YAHOO\hypnotized" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/43.gif"
+"YAHOO\lying" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/44.gif"
+"YAHOO\waiting" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/45.gif"
+"YAHOO\weep" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/46.gif"
+"YAHOO\mad-tongue" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/47.gif"
+"YAHOO\cowboy" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/48.gif"
+"YAHOO\dog" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/108.gif"
+"YAHOO\dont-know" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/106.gif"
+"YAHOO\not-listening" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/107.gif"
+"YAHOO\pig" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/49.gif"
+"YAHOO\cow" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/50.gif"
+"YAHOO\monkey" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/51.gif"
+"YAHOO\chicken" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/52.gif"
+"YAHOO\rose" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/53.gif"
+"YAHOO\clover" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/54.gif"
+"YAHOO\flag_US" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/55.gif"
+"YAHOO\pumpkin" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/56.gif"
+"YAHOO\coffee" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/57.gif"
+"YAHOO\lamp" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/58.gif"
+"YAHOO\skeleton" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/59.gif"
+"YAHOO\bug" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/60.gif"
+"YAHOO\alien" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/61.gif"
+"YAHOO\disapointed" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/62.gif"
+"YAHOO\pray" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/63.gif"
+"YAHOO\money" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/64.gif"
+"YAHOO\music" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/65.gif"
+"YAHOO\beat-up" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/66.gif"
+"YAHOO\peace" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/67.gif"
+"YAHOO\shame-on-you" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/68.gif"
+"YAHOO\dance" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/69.gif"
+"YAHOO\pick-fight" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/70.gif"
+"YAHOO\giggle" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/71.gif"
+"YAHOO\boring" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/76.gif"
+"YAHOO\worship" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/77.gif"
+"YAHOO\oh-go-on" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/78.gif"
+"YAHOO\star" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/79.gif"
+"YAHOO\male" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/72.gif"
+"YAHOO\female" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/74.gif"
+"YAHOO\yin-yang" = "http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/75.gif"
+
+
+# Sametime
+# http://www-306.ibm.com/software/lotus/products/sametime/emoticons.html
+"SAMETIME\angel" = ""
+"SAMETIME\tongue" = ""
+"SAMETIME\shock" = ""
+"SAMETIME\embarrassed" = ""
+"SAMETIME\laugh" = ""
+"SAMETIME\crying" = ""
+"SAMETIME\shout" = ""
+"SAMETIME\wink" = "http://www-306.ibm.com/software/lotus/images/emoticon_wink.gif"
+"SAMETIME\sarcastic" = ""
+"SAMETIME\smile" = "http://www.ibm.com/software/lotus/images/emoticon_smile.gif"
+"SAMETIME\thinking" = ""
+"SAMETIME\confused" = ""
+"SAMETIME\sad" = "http://www.ibm.com/software/lotus/images/emoticon_frown.gif"
+"SAMETIME\lamp" = ""
+
+
+# Skype
+# http://www.skype-emoticons.com/
+
+"SKYPE\smile" = "http://www.skype-emoticons.com/images/emoticon-0100-smile.gif"
+"SKYPE\sad" = "http://www.skype-emoticons.com/images/emoticon-0101-sadsmile.gif"
+"SKYPE\laugh" = "http://www.skype-emoticons.com/images/emoticon-0102-bigsmile.gif"
+"SKYPE\glass-cool" = "http://www.skype-emoticons.com/images/emoticon-0103-cool.gif"
+"SKYPE\wink" = "http://www.skype-emoticons.com/images/emoticon-0105-wink.gif"
+"SKYPE\crying" = "http://www.skype-emoticons.com/images/emoticon-0106-crying.gif"
+"SKYPE\sweat" = "http://www.skype-emoticons.com/images/emoticon-0107-sweating.gif"
+"SKYPE\neutral" = "http://www.skype-emoticons.com/images/emoticon-0108-speechless.gif"
+"SKYPE\kiss" = "http://www.skype-emoticons.com/images/emoticon-0109-kiss.gif"
+"SKYPE\tongue" = "http://www.skype-emoticons.com/images/emoticon-0110-tongueout.gif"
+"SKYPE\embarrassed" = "http://www.skype-emoticons.com/images/emoticon-0111-blush.gif"
+"SKYPE\sarcastic" = "http://www.skype-emoticons.com/images/emoticon-0112-wondering.gif"
+"SKYPE\sleepy" = "http://www.skype-emoticons.com/images/emoticon-0113-sleepy.gif"
+"SKYPE\boring" = "http://www.skype-emoticons.com/images/emoticon-0114-dull.gif"
+"SKYPE\in-love" = "http://www.skype-emoticons.com/images/emoticon-0115-inlove.gif"
+"SKYPE\mean" = "http://www.skype-emoticons.com/images/emoticon-0116-evilgrin.gif"
+"SKYPE\talking" = "http://www.skype-emoticons.com/images/emoticon-0117-talking.gif"
+"SKYPE\yawn" = "http://www.skype-emoticons.com/images/emoticon-0118-yawn.gif"
+"SKYPE\sick" = "http://www.skype-emoticons.com/images/emoticon-0119-puke.gif"
+"SKYPE\doh" = "http://www.skype-emoticons.com/images/emoticon-0120-doh.gif"
+"SKYPE\angry" = "http://www.skype-emoticons.com/images/emoticon-0121-angry.gif"
+"SKYPE\eyeroll" = "http://www.skype-emoticons.com/images/emoticon-0122-itwasntme.gif"
+"SKYPE\party" = "http://www.skype-emoticons.com/images/emoticon-0123-party.gif"
+"SKYPE\confused" = "http://www.skype-emoticons.com/images/emoticon-0124-worried.gif"
+"SKYPE\curl-lip" = "http://www.skype-emoticons.com/images/emoticon-0125-mmm.gif"
+"SKYPE\glass-nerdy" = "http://www.skype-emoticons.com/images/emoticon-0126-nerd.gif"
+"SKYPE\shut-mouth" = "http://www.skype-emoticons.com/images/emoticon-0127-lipssealed.gif"
+"SKYPE\bye" = "http://www.skype-emoticons.com/images/emoticon-0128-hi.gif"
+"SKYPE\call-me" = "http://www.skype-emoticons.com/images/emoticon-0129-call.gif"
+"SKYPE\devilish" = "http://www.skype-emoticons.com/images/emoticon-0130-devil.gif"
+"SKYPE\angel" = "http://www.skype-emoticons.com/images/emoticon-0131-angel.gif"
+"SKYPE\envy" = "http://www.skype-emoticons.com/images/emoticon-0132-envy.gif"
+"SKYPE\wait" = "http://www.skype-emoticons.com/images/emoticon-0133-wait.gif"
+"SKYPE\bear" = "http://www.skype-emoticons.com/images/emoticon-0134-bear.gif"
+"SKYPE\make-up" = "http://www.skype-emoticons.com/images/emoticon-0135-makeup.gif"
+"SKYPE\giggle" = "http://www.skype-emoticons.com/images/emoticon-0136-giggle.gif"
+"SKYPE\clap" = "http://www.skype-emoticons.com/images/emoticon-0137-clapping.gif"
+"SKYPE\thinking" = "http://www.skype-emoticons.com/images/emoticon-0138-thinking.gif"
+"SKYPE\worship" = "http://www.skype-emoticons.com/images/emoticon-0139-bow.gif"
+"SKYPE\rotfl" = "http://www.skype-emoticons.com/images/emoticon-0140-rofl.gif"
+"SKYPE\whew" = "http://www.skype-emoticons.com/images/emoticon-0141-whew.gif"
+"SKYPE\smile-big" = "http://www.skype-emoticons.com/images/emoticon-0142-happy.gif"
+"SKYPE\smirk" = "http://www.skype-emoticons.com/images/emoticon-0143-smirk.gif"
+"SKYPE\nodding" = "http://www.skype-emoticons.com/images/emoticon-0144-nod.gif"
+"SKYPE\shaking" = "http://www.skype-emoticons.com/images/emoticon-0145-shake.gif"
+"SKYPE\punch" = "http://www.skype-emoticons.com/images/emoticon-0146-punch.gif"
+"SKYPE\emo" = "http://www.skype-emoticons.com/images/emoticon-0147-emo.gif"
+"SKYPE\yes" = "http://www.skype-emoticons.com/images/emoticon-0148-yes.gif"
+"SKYPE\no" = "http://www.skype-emoticons.com/images/emoticon-0149-no.gif"
+"SKYPE\handshake" = "http://www.skype-emoticons.com/images/emoticon-0150-handshake.gif"
+"SKYPE\skype" = "http://www.skype-emoticons.com/images/emoticon-0151-skype.gif"
+"SKYPE\love" = "http://www.skype-emoticons.com/images/emoticon-0152-heart.gif"
+"SKYPE\love-over" = "http://www.skype-emoticons.com/images/emoticon-0153-brokenheart.gif"
+"SKYPE\mail" = "http://www.skype-emoticons.com/images/emoticon-0154-mail.gif"
+"SKYPE\rose" = "http://www.skype-emoticons.com/images/emoticon-0155-flower.gif"
+"SKYPE\rain" = "http://www.skype-emoticons.com/images/emoticon-0156-rain.gif"
+"SKYPE\sun" = "http://www.skype-emoticons.com/images/emoticon-0157-sun.gif"
+"SKYPE\clock" = "http://www.skype-emoticons.com/images/emoticon-0158-time.gif"
+"SKYPE\music" = "http://www.skype-emoticons.com/images/emoticon-0159-music.gif"
+"SKYPE\film" = "http://www.skype-emoticons.com/images/emoticon-0160-movie.gif"
+"SKYPE\phone" = "http://www.skype-emoticons.com/images/emoticon-0161-phone.gif"
+"SKYPE\coffee" = "http://www.skype-emoticons.com/images/emoticon-0162-coffee.gif"
+"SKYPE\pizza" = "http://www.skype-emoticons.com/images/emoticon-0163-pizza.gif"
+"SKYPE\money" = "http://www.skype-emoticons.com/images/emoticon-0164-cash.gif"
+"SKYPE\muscle" = "http://www.skype-emoticons.com/images/emoticon-0165-muscle.gif"
+"SKYPE\cake" = "http://www.skype-emoticons.com/images/emoticon-0166-cake.gif"
+"SKYPE\beer" = "http://www.skype-emoticons.com/images/emoticon-0167-beer.gif"
+"SKYPE\drink" = "http://www.skype-emoticons.com/images/emoticon-0168-drink.gif"
+"SKYPE\dance" = "http://www.skype-emoticons.com/images/emoticon-0169-dance.gif"
+"SKYPE\ninja" = "http://www.skype-emoticons.com/images/emoticon-0170-ninja.gif"
+"SKYPE\star" = "http://www.skype-emoticons.com/images/emoticon-0171-star.gif"
+"SKYPE\mooning" = "http://www.skype-emoticons.com/images/emoticon-0172-mooning.gif"
+"SKYPE\finger" = "http://www.skype-emoticons.com/images/emoticon-0173-middlefinger.gif"
+"SKYPE\bandit" = "http://www.skype-emoticons.com/images/emoticon-0174-bandit.gif"
+"SKYPE\drunk" = "http://www.skype-emoticons.com/images/emoticon-0175-drunk.gif"
+"SKYPE\cigarette" = "http://www.skype-emoticons.com/images/emoticon-0176-smoke.gif"
+"SKYPE\toivo" = "http://www.skype-emoticons.com/images/emoticon-0177-toivo.gif"
+"SKYPE\rock" = "http://www.skype-emoticons.com/images/emoticon-0178-rock.gif"
+"SKYPE\headbang" = "http://www.skype-emoticons.com/images/emoticon-0179-headbang.gif"
+"SKYPE\bug" = "http://www.skype-emoticons.com/images/emoticon-0180-bug.gif"
+"SKYPE\fubar" = "http://www.skype-emoticons.com/images/emoticon-0181-fubar.gif"
+"SKYPE\poolparty" = "http://www.skype-emoticons.com/images/emoticon-0182-poolparty.gif"
+"SKYPE\swearing" = "http://www.skype-emoticons.com/images/emoticon-0183-swear.gif"
+"SKYPE\tmi" = "http://www.skype-emoticons.com/images/emoticon-0184-tmi.gif"
+"SKYPE\heidy" = "http://www.skype-emoticons.com/images/emoticon-0185-heidy.gif"
+"SKYPE\flag_AF" = "http://www.skype-emoticons.com/images/af.png"
+"SKYPE\flag_AL" = "http://www.skype-emoticons.com/images/al.png"
+"SKYPE\flag_DZ" = "http://www.skype-emoticons.com/images/dz.png"
+"SKYPE\flag_AS" = "http://www.skype-emoticons.com/images/as.png"
+"SKYPE\flag_AD" = "http://www.skype-emoticons.com/images/ad.png"
+"SKYPE\flag_AO" = "http://www.skype-emoticons.com/images/ao.png"
+"SKYPE\flag_AI" = "http://www.skype-emoticons.com/images/ai.png"
+"SKYPE\flag_AQ" = "http://www.skype-emoticons.com/images/aq.png"
+"SKYPE\flag_AG" = "http://www.skype-emoticons.com/images/ag.png"
+"SKYPE\flag_AR" = "http://www.skype-emoticons.com/images/ar.png"
+"SKYPE\flag_AM" = "http://www.skype-emoticons.com/images/am.png"
+"SKYPE\flag_AW" = "http://www.skype-emoticons.com/images/aw.png"
+"SKYPE\flag_AU" = "http://www.skype-emoticons.com/images/au.png"
+"SKYPE\flag_AT" = "http://www.skype-emoticons.com/images/at.png"
+"SKYPE\flag_AZ" = "http://www.skype-emoticons.com/images/az.png"
+"SKYPE\flag_BS" = "http://www.skype-emoticons.com/images/bs.png"
+"SKYPE\flag_BH" = "http://www.skype-emoticons.com/images/bh.png"
+"SKYPE\flag_BD" = "http://www.skype-emoticons.com/images/bd.png"
+"SKYPE\flag_BB" = "http://www.skype-emoticons.com/images/bb.png"
+"SKYPE\flag_BY" = "http://www.skype-emoticons.com/images/by.png"
+"SKYPE\flag_BE" = "http://www.skype-emoticons.com/images/be.png"
+"SKYPE\flag_BZ" = "http://www.skype-emoticons.com/images/bz.png"
+"SKYPE\flag_BJ" = "http://www.skype-emoticons.com/images/bj.png"
+"SKYPE\flag_BM" = "http://www.skype-emoticons.com/images/bm.png"
+"SKYPE\flag_BT" = "http://www.skype-emoticons.com/images/bt.png"
+"SKYPE\flag_BO" = "http://www.skype-emoticons.com/images/bo.png"
+"SKYPE\flag_BA" = "http://www.skype-emoticons.com/images/ba.png"
+"SKYPE\flag_BW" = "http://www.skype-emoticons.com/images/bw.png"
+"SKYPE\flag_BR" = "http://www.skype-emoticons.com/images/br.png"
+"SKYPE\flag_IO" = "http://www.skype-emoticons.com/images/io.png"
+"SKYPE\flag_VG" = "http://www.skype-emoticons.com/images/vg.png"
+"SKYPE\flag_BN" = "http://www.skype-emoticons.com/images/bn.png"
+"SKYPE\flag_BG" = "http://www.skype-emoticons.com/images/bg.png"
+"SKYPE\flag_BF" = "http://www.skype-emoticons.com/images/bf.png"
+"SKYPE\flag_BI" = "http://www.skype-emoticons.com/images/bi.png"
+"SKYPE\flag_KH" = "http://www.skype-emoticons.com/images/kh.png"
+"SKYPE\flag_CM" = "http://www.skype-emoticons.com/images/cm.png"
+"SKYPE\flag_CA" = "http://www.skype-emoticons.com/images/ca.png"
+"SKYPE\flag_CV" = "http://www.skype-emoticons.com/images/cv.png"
+"SKYPE\flag_KY" = "http://www.skype-emoticons.com/images/ky.png"
+"SKYPE\flag_CF" = "http://www.skype-emoticons.com/images/cf.png"
+"SKYPE\flag_TD" = "http://www.skype-emoticons.com/images/td.png"
+"SKYPE\flag_CL" = "http://www.skype-emoticons.com/images/cl.png"
+"SKYPE\flag_CN" = "http://www.skype-emoticons.com/images/cn.png"
+"SKYPE\flag_CX" = "http://www.skype-emoticons.com/images/cx.png"
+"SKYPE\flag_CC" = "http://www.skype-emoticons.com/images/cc.png"
+"SKYPE\flag_CO" = "http://www.skype-emoticons.com/images/co.png"
+"SKYPE\flag_KM" = "http://www.skype-emoticons.com/images/km.png"
+"SKYPE\flag_CD" = "http://www.skype-emoticons.com/images/cd.png"
+"SKYPE\flag_CG" = "http://www.skype-emoticons.com/images/cg.png"
+"SKYPE\flag_CK" = "http://www.skype-emoticons.com/images/ck.png"
+"SKYPE\flag_CR" = "http://www.skype-emoticons.com/images/cr.png"
+"SKYPE\flag_CI" = "http://www.skype-emoticons.com/images/ci.png"
+"SKYPE\flag_CU" = "http://www.skype-emoticons.com/images/cu.png"
+"SKYPE\flag_CY" = "http://www.skype-emoticons.com/images/cy.png"
+"SKYPE\flag_CZ" = "http://www.skype-emoticons.com/images/cz.png"
+"SKYPE\flag_DK" = "http://www.skype-emoticons.com/images/dk.png"
+"SKYPE\flag_DJ" = "http://www.skype-emoticons.com/images/dj.png"
+"SKYPE\flag_DM" = "http://www.skype-emoticons.com/images/dm.png"
+"SKYPE\flag_DO" = "http://www.skype-emoticons.com/images/do.png"
+"SKYPE\flag_EC" = "http://www.skype-emoticons.com/images/ec.png"
+"SKYPE\flag_EG" = "http://www.skype-emoticons.com/images/eg.png"
+"SKYPE\flag_EU" = "http://www.skype-emoticons.com/images/eu.png"
+"SKYPE\flag_SV" = "http://www.skype-emoticons.com/images/sv.png"
+"SKYPE\flag_GQ" = "http://www.skype-emoticons.com/images/gq.png"
+"SKYPE\flag_ER" = "http://www.skype-emoticons.com/images/er.png"
+"SKYPE\flag_EE" = "http://www.skype-emoticons.com/images/ee.png"
+"SKYPE\flag_ET" = "http://www.skype-emoticons.com/images/et.png"
+"SKYPE\flag_FO" = "http://www.skype-emoticons.com/images/fo.png"
+"SKYPE\flag_FK" = "http://www.skype-emoticons.com/images/fk.png"
+"SKYPE\flag_FJ" = "http://www.skype-emoticons.com/images/fj.png"
+"SKYPE\flag_FI" = "http://www.skype-emoticons.com/images/fi.png"
+"SKYPE\flag_FR" = "http://www.skype-emoticons.com/images/fr.png"
+"SKYPE\flag_GF" = "http://www.skype-emoticons.com/images/gf.png"
+"SKYPE\flag_PF" = "http://www.skype-emoticons.com/images/pf.png"
+"SKYPE\flag_TF" = "http://www.skype-emoticons.com/images/tf.png"
+"SKYPE\flag_GA" = "http://www.skype-emoticons.com/images/ga.png"
+"SKYPE\flag_GM" = "http://www.skype-emoticons.com/images/gm.png"
+"SKYPE\flag_GE" = "http://www.skype-emoticons.com/images/ge.png"
+"SKYPE\flag_DE" = "http://www.skype-emoticons.com/images/de.png"
+"SKYPE\flag_GH" = "http://www.skype-emoticons.com/images/gh.png"
+"SKYPE\flag_GI" = "http://www.skype-emoticons.com/images/gi.png"
+"SKYPE\flag_GR" = "http://www.skype-emoticons.com/images/gr.png"
+"SKYPE\flag_GL" = "http://www.skype-emoticons.com/images/gl.png"
+"SKYPE\flag_GD" = "http://www.skype-emoticons.com/images/gd.png"
+"SKYPE\flag_GP" = "http://www.skype-emoticons.com/images/gp.png"
+"SKYPE\flag_GU" = "http://www.skype-emoticons.com/images/gu.png"
+"SKYPE\flag_GT" = "http://www.skype-emoticons.com/images/gt.png"
+"SKYPE\flag_GN" = "http://www.skype-emoticons.com/images/gn.png"
+"SKYPE\flag_GW" = "http://www.skype-emoticons.com/images/gw.png"
+"SKYPE\flag_GY" = "http://www.skype-emoticons.com/images/gy.png"
+"SKYPE\flag_HT" = "http://www.skype-emoticons.com/images/ht.png"
+"SKYPE\flag_HM" = "http://www.skype-emoticons.com/images/hm.png"
+"SKYPE\flag_VA" = "http://www.skype-emoticons.com/images/va.png"
+"SKYPE\flag_HN" = "http://www.skype-emoticons.com/images/hn.png"
+"SKYPE\flag_HK" = "http://www.skype-emoticons.com/images/hk.png"
+"SKYPE\flag_HR" = "http://www.skype-emoticons.com/images/hr.png"
+"SKYPE\flag_HU" = "http://www.skype-emoticons.com/images/hu.png"
+"SKYPE\flag_IS" = "http://www.skype-emoticons.com/images/is.png"
+"SKYPE\flag_IN" = "http://www.skype-emoticons.com/images/in.png"
+"SKYPE\flag_ID" = "http://www.skype-emoticons.com/images/id.png"
+"SKYPE\flag_IR" = "http://www.skype-emoticons.com/images/ir.png"
+"SKYPE\flag_IQ" = "http://www.skype-emoticons.com/images/iq.png"
+"SKYPE\flag_IE" = "http://www.skype-emoticons.com/images/ie.png"
+"SKYPE\flag_IL" = "http://www.skype-emoticons.com/images/il.png"
+"SKYPE\flag_IT" = "http://www.skype-emoticons.com/images/it.png"
+"SKYPE\flag_JM" = "http://www.skype-emoticons.com/images/jm.png"
+"SKYPE\flag_JP" = "http://www.skype-emoticons.com/images/jp.png"
+"SKYPE\flag_JO" = "http://www.skype-emoticons.com/images/jo.png"
+"SKYPE\flag_KZ" = "http://www.skype-emoticons.com/images/kz.png"
+"SKYPE\flag_KE" = "http://www.skype-emoticons.com/images/ke.png"
+"SKYPE\flag_KI" = "http://www.skype-emoticons.com/images/ki.png"
+"SKYPE\flag_KP" = "http://www.skype-emoticons.com/images/kp.png"
+"SKYPE\flag_KR" = "http://www.skype-emoticons.com/images/kr.png"
+"SKYPE\flag_KW" = "http://www.skype-emoticons.com/images/kw.png"
+"SKYPE\flag_KG" = "http://www.skype-emoticons.com/images/kg.png"
+"SKYPE\flag_LA" = "http://www.skype-emoticons.com/images/la.png"
+"SKYPE\flag_LV" = "http://www.skype-emoticons.com/images/lv.png"
+"SKYPE\flag_LB" = "http://www.skype-emoticons.com/images/lb.png"
+"SKYPE\flag_LS" = "http://www.skype-emoticons.com/images/ls.png"
+"SKYPE\flag_LR" = "http://www.skype-emoticons.com/images/lr.png"
+"SKYPE\flag_LY" = "http://www.skype-emoticons.com/images/ly.png"
+"SKYPE\flag_LI" = "http://www.skype-emoticons.com/images/li.png"
+"SKYPE\flag_LT" = "http://www.skype-emoticons.com/images/lt.png"
+"SKYPE\flag_LU" = "http://www.skype-emoticons.com/images/lu.png"
+"SKYPE\flag_MO" = "http://www.skype-emoticons.com/images/mo.png"
+"SKYPE\flag_ME" = "http://www.skype-emoticons.com/images/me.png"
+"SKYPE\flag_MK" = "http://www.skype-emoticons.com/images/mk.png"
+"SKYPE\flag_MG" = "http://www.skype-emoticons.com/images/mg.png"
+"SKYPE\flag_MW" = "http://www.skype-emoticons.com/images/mw.png"
+"SKYPE\flag_MY" = "http://www.skype-emoticons.com/images/my.png"
+"SKYPE\flag_MV" = "http://www.skype-emoticons.com/images/mv.png"
+"SKYPE\flag_ML" = "http://www.skype-emoticons.com/images/ml.png"
+"SKYPE\flag_MT" = "http://www.skype-emoticons.com/images/mt.png"
+"SKYPE\flag_MH" = "http://www.skype-emoticons.com/images/mh.png"
+"SKYPE\flag_MQ" = "http://www.skype-emoticons.com/images/mq.png"
+"SKYPE\flag_MR" = "http://www.skype-emoticons.com/images/mr.png"
+"SKYPE\flag_MU" = "http://www.skype-emoticons.com/images/mu.png"
+"SKYPE\flag_YT" = "http://www.skype-emoticons.com/images/yt.png"
+"SKYPE\flag_MX" = "http://www.skype-emoticons.com/images/mx.png"
+"SKYPE\flag_FM" = "http://www.skype-emoticons.com/images/fm.png"
+"SKYPE\flag_MD" = "http://www.skype-emoticons.com/images/md.png"
+"SKYPE\flag_MC" = "http://www.skype-emoticons.com/images/mc.png"
+"SKYPE\flag_MN" = "http://www.skype-emoticons.com/images/mn.png"
+"SKYPE\flag_MS" = "http://www.skype-emoticons.com/images/ms.png"
+"SKYPE\flag_MA" = "http://www.skype-emoticons.com/images/ma.png"
+"SKYPE\flag_MZ" = "http://www.skype-emoticons.com/images/mz.png"
+"SKYPE\flag_MM" = "http://www.skype-emoticons.com/images/mm.png"
+"SKYPE\flag_NA" = "http://www.skype-emoticons.com/images/na.png"
+"SKYPE\flag_NR" = "http://www.skype-emoticons.com/images/nr.png"
+"SKYPE\flag_NP" = "http://www.skype-emoticons.com/images/np.png"
+"SKYPE\flag_AN" = "http://www.skype-emoticons.com/images/an.png"
+"SKYPE\flag_NL" = "http://www.skype-emoticons.com/images/nl.png"
+"SKYPE\flag_NC" = "http://www.skype-emoticons.com/images/nc.png"
+"SKYPE\flag_NZ" = "http://www.skype-emoticons.com/images/nz.png"
+"SKYPE\flag_NI" = "http://www.skype-emoticons.com/images/ni.png"
+"SKYPE\flag_NE" = "http://www.skype-emoticons.com/images/ne.png"
+"SKYPE\flag_NG" = "http://www.skype-emoticons.com/images/ng.png"
+"SKYPE\flag_NU" = "http://www.skype-emoticons.com/images/nu.png"
+"SKYPE\flag_NF" = "http://www.skype-emoticons.com/images/nf.png"
+"SKYPE\flag_MP" = "http://www.skype-emoticons.com/images/mp.png"
+"SKYPE\flag_NO" = "http://www.skype-emoticons.com/images/no.png"
+"SKYPE\flag_OM" = "http://www.skype-emoticons.com/images/om.png"
+"SKYPE\flag_PK" = "http://www.skype-emoticons.com/images/pk.png"
+"SKYPE\flag_PW" = "http://www.skype-emoticons.com/images/pw.png"
+"SKYPE\flag_PS" = "http://www.skype-emoticons.com/images/ps.png"
+"SKYPE\flag_PA" = "http://www.skype-emoticons.com/images/pa.png"
+"SKYPE\flag_PG" = "http://www.skype-emoticons.com/images/pg.png"
+"SKYPE\flag_PY" = "http://www.skype-emoticons.com/images/py.png"
+"SKYPE\flag_PE" = "http://www.skype-emoticons.com/images/pe.png"
+"SKYPE\flag_PH" = "http://www.skype-emoticons.com/images/ph.png"
+"SKYPE\flag_PN" = "http://www.skype-emoticons.com/images/pn.png"
+"SKYPE\flag_PL" = "http://www.skype-emoticons.com/images/pl.png"
+"SKYPE\flag_PT" = "http://www.skype-emoticons.com/images/pt.png"
+"SKYPE\flag_PR" = "http://www.skype-emoticons.com/images/pr.png"
+"SKYPE\flag_QA" = "http://www.skype-emoticons.com/images/qa.png"
+"SKYPE\flag_RE" = "http://www.skype-emoticons.com/images/re.png"
+"SKYPE\flag_RO" = "http://www.skype-emoticons.com/images/ro.png"
+"SKYPE\flag_RS" = "http://www.skype-emoticons.com/images/rs.png"
+"SKYPE\flag_RU" = "http://www.skype-emoticons.com/images/ru.png"
+"SKYPE\flag_RW" = "http://www.skype-emoticons.com/images/rw.png"
+"SKYPE\flag_SH" = "http://www.skype-emoticons.com/images/sh.png"
+"SKYPE\flag_KN" = "http://www.skype-emoticons.com/images/kn.png"
+"SKYPE\flag_LC" = "http://www.skype-emoticons.com/images/lc.png"
+"SKYPE\flag_PM" = "http://www.skype-emoticons.com/images/pm.png"
+"SKYPE\flag_VC" = "http://www.skype-emoticons.com/images/vc.png"
+"SKYPE\flag_WS" = "http://www.skype-emoticons.com/images/ws.png"
+"SKYPE\flag_SM" = "http://www.skype-emoticons.com/images/sm.png"
+"SKYPE\flag_ST" = "http://www.skype-emoticons.com/images/st.png"
+"SKYPE\flag_SA" = "http://www.skype-emoticons.com/images/sa.png"
+"SKYPE\flag_SN" = "http://www.skype-emoticons.com/images/sn.png"
+"SKYPE\flag_CS" = "http://www.skype-emoticons.com/images/cs.png"
+"SKYPE\flag_SC" = "http://www.skype-emoticons.com/images/sc.png"
+"SKYPE\flag_SL" = "http://www.skype-emoticons.com/images/sl.png"
+"SKYPE\flag_SG" = "http://www.skype-emoticons.com/images/sg.png"
+"SKYPE\flag_SK" = "http://www.skype-emoticons.com/images/sk.png"
+"SKYPE\flag_SI" = "http://www.skype-emoticons.com/images/si.png"
+"SKYPE\flag_SB" = "http://www.skype-emoticons.com/images/sb.png"
+"SKYPE\flag_SO" = "http://www.skype-emoticons.com/images/so.png"
+"SKYPE\flag_ZA" = "http://www.skype-emoticons.com/images/za.png"
+"SKYPE\flag_ES" = "http://www.skype-emoticons.com/images/es.png"
+"SKYPE\flag_LK" = "http://www.skype-emoticons.com/images/lk.png"
+"SKYPE\flag_SD" = "http://www.skype-emoticons.com/images/sd.png"
+"SKYPE\flag_SR" = "http://www.skype-emoticons.com/images/sr.png"
+"SKYPE\flag_SZ" = "http://www.skype-emoticons.com/images/sz.png"
+"SKYPE\flag_SE" = "http://www.skype-emoticons.com/images/se.png"
+"SKYPE\flag_CH" = "http://www.skype-emoticons.com/images/ch.png"
+"SKYPE\flag_SY" = "http://www.skype-emoticons.com/images/sy.png"
+"SKYPE\flag_TW" = "http://www.skype-emoticons.com/images/tw.png"
+"SKYPE\flag_TJ" = "http://www.skype-emoticons.com/images/tj.png"
+"SKYPE\flag_TZ" = "http://www.skype-emoticons.com/images/tz.png"
+"SKYPE\flag_TH" = "http://www.skype-emoticons.com/images/th.png"
+"SKYPE\flag_TL" = "http://www.skype-emoticons.com/images/tl.png"
+"SKYPE\flag_TG" = "http://www.skype-emoticons.com/images/tg.png"
+"SKYPE\flag_TK" = "http://www.skype-emoticons.com/images/tk.png"
+"SKYPE\flag_TO" = "http://www.skype-emoticons.com/images/to.png"
+"SKYPE\flag_TT" = "http://www.skype-emoticons.com/images/tt.png"
+"SKYPE\flag_TN" = "http://www.skype-emoticons.com/images/tn.png"
+"SKYPE\flag_TR" = "http://www.skype-emoticons.com/images/tr.png"
+"SKYPE\flag_TM" = "http://www.skype-emoticons.com/images/tm.png"
+"SKYPE\flag_TC" = "http://www.skype-emoticons.com/images/tc.png"
+"SKYPE\flag_TV" = "http://www.skype-emoticons.com/images/tv.png"
+"SKYPE\flag_VI" = "http://www.skype-emoticons.com/images/vi.png"
+"SKYPE\flag_UG" = "http://www.skype-emoticons.com/images/ug.png"
+"SKYPE\flag_UA" = "http://www.skype-emoticons.com/images/ua.png"
+"SKYPE\flag_AE" = "http://www.skype-emoticons.com/images/ae.png"
+"SKYPE\flag_GB" = "http://www.skype-emoticons.com/images/gb.png"
+"SKYPE\flag_US" = "http://www.skype-emoticons.com/images/us.png"
+"SKYPE\flag_UY" = "http://www.skype-emoticons.com/images/uy.png"
+"SKYPE\flag_UZ" = "http://www.skype-emoticons.com/images/uz.png"
+"SKYPE\flag_VU" = "http://www.skype-emoticons.com/images/vu.png"
+"SKYPE\flag_VE" = "http://www.skype-emoticons.com/images/ve.png"
+"SKYPE\flag_VN" = "http://www.skype-emoticons.com/images/vn.png"
+"SKYPE\flag_WF" = "http://www.skype-emoticons.com/images/wf.png"
+"SKYPE\flag_EH" = "http://www.skype-emoticons.com/images/eh.png"
+"SKYPE\flag_YE" = "http://www.skype-emoticons.com/images/ye.png"
+"SKYPE\flag_ZM" = "http://www.skype-emoticons.com/images/zm.png"
+"SKYPE\flag_ZW" = "http://www.skype-emoticons.com/images/zw.png"
+
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep b/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep
index 213905d..09d1bfe 100644
--- a/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/Tango.mep
@@ -1,2 +1,2 @@
Name: Tango emoticons
-Creator: Hylke \ No newline at end of file
+Creator: Hylke (emoticons) and famfamfam.com (flags) \ No newline at end of file
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.png
new file mode 100644
index 0000000..625ca84
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.png
new file mode 100644
index 0000000..ef3a1ec
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.png
new file mode 100644
index 0000000..a4742e2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.png
new file mode 100644
index 0000000..556d550
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.png
new file mode 100644
index 0000000..74ed29d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.png
new file mode 100644
index 0000000..92354cb
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.png
new file mode 100644
index 0000000..344a2a8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.png
new file mode 100644
index 0000000..633e4b8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.png
new file mode 100644
index 0000000..bcbd1d6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.png
new file mode 100644
index 0000000..9c6602f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.png
new file mode 100644
index 0000000..e5ef8f1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.png
new file mode 100644
index 0000000..32f30e4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.png
new file mode 100644
index 0000000..0f15f34
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.png
new file mode 100644
index 0000000..a01389a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.png
new file mode 100644
index 0000000..a3579c2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.png
new file mode 100644
index 0000000..4ee9fe5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_AZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.png
new file mode 100644
index 0000000..c774992
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.png
new file mode 100644
index 0000000..0df19c7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.png
new file mode 100644
index 0000000..076a8bf
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.png
new file mode 100644
index 0000000..d86ebc8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.png
new file mode 100644
index 0000000..ab5ce8f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.png
new file mode 100644
index 0000000..0469f06
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.png
new file mode 100644
index 0000000..ea8ce68
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.png
new file mode 100644
index 0000000..5cc2e30
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.png
new file mode 100644
index 0000000..1cc8b45
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.png
new file mode 100644
index 0000000..c0c7aea
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.png
new file mode 100644
index 0000000..8fb0984
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.png
new file mode 100644
index 0000000..ce7ba52
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.png
new file mode 100644
index 0000000..9b1a553
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.png
new file mode 100644
index 0000000..639fa6c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.png
new file mode 100644
index 0000000..1d512df
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.png
new file mode 100644
index 0000000..fcb1039
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.png
new file mode 100644
index 0000000..504774e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.png
new file mode 100644
index 0000000..be63ee1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_BZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.png
new file mode 100644
index 0000000..1f20419
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.png
new file mode 100644
index 0000000..aed3d3b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.png
new file mode 100644
index 0000000..5e48942
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.png
new file mode 100644
index 0000000..da687bd
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.png
new file mode 100644
index 0000000..a859792
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.png
new file mode 100644
index 0000000..242ec01
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.png
new file mode 100644
index 0000000..3f2c62e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.png
new file mode 100644
index 0000000..746d3d6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.png
new file mode 100644
index 0000000..29c6d61
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.png
new file mode 100644
index 0000000..f65c5bd
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.png
new file mode 100644
index 0000000..8914414
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.png
new file mode 100644
index 0000000..a118ff4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.png
new file mode 100644
index 0000000..c7a3731
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.png
new file mode 100644
index 0000000..8254790
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.png
new file mode 100644
index 0000000..083f1d6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.png
new file mode 100644
index 0000000..a63f7ea
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.png
new file mode 100644
index 0000000..48e31ad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CX.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.png
new file mode 100644
index 0000000..5b1ad6c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.png
new file mode 100644
index 0000000..c8403dd
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_CZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.png
new file mode 100644
index 0000000..ac4a977
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.png
new file mode 100644
index 0000000..582af36
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.png
new file mode 100644
index 0000000..e2993d3
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.png
new file mode 100644
index 0000000..5fbffcb
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.png
new file mode 100644
index 0000000..5a04932
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.png
new file mode 100644
index 0000000..335c239
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_DZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.png
new file mode 100644
index 0000000..0caa0b1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.png
new file mode 100644
index 0000000..0c82efb
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.png
new file mode 100644
index 0000000..8a3f7a1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.png
new file mode 100644
index 0000000..90a1195
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.png
new file mode 100644
index 0000000..13065ae
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ER.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.png
new file mode 100644
index 0000000..c2de2d7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ES.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.png
new file mode 100644
index 0000000..2e893fa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ET.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.png
new file mode 100644
index 0000000..d6d8711
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_EU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.png
new file mode 100644
index 0000000..14ec091
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.png
new file mode 100644
index 0000000..cee9988
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.png
new file mode 100644
index 0000000..ceaeb27
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.png
new file mode 100644
index 0000000..066bb24
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.png
new file mode 100644
index 0000000..cbceb80
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_FR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.png
new file mode 100644
index 0000000..0e0d434
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.png
new file mode 100644
index 0000000..ff701e1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.png
new file mode 100644
index 0000000..9ab57f5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.png
new file mode 100644
index 0000000..728d970
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.png
new file mode 100644
index 0000000..4e2f896
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.png
new file mode 100644
index 0000000..e76797f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.png
new file mode 100644
index 0000000..ef12a73
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.png
new file mode 100644
index 0000000..0720b66
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.png
new file mode 100644
index 0000000..ea660b0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.png
new file mode 100644
index 0000000..dbb086d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.png
new file mode 100644
index 0000000..ebe20a2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.png
new file mode 100644
index 0000000..8651ade
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.png
new file mode 100644
index 0000000..c43a70d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.png
new file mode 100644
index 0000000..92f37c0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.png
new file mode 100644
index 0000000..b37bcf0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.png
new file mode 100644
index 0000000..22cbe2f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_GY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.png
new file mode 100644
index 0000000..d5c380c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.png
new file mode 100644
index 0000000..a01389a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.png
new file mode 100644
index 0000000..96f8388
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.png
new file mode 100644
index 0000000..696b515
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.png
new file mode 100644
index 0000000..416052a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.png
new file mode 100644
index 0000000..7baafe4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_HU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.png
new file mode 100644
index 0000000..c6bc0fa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ID.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.png
new file mode 100644
index 0000000..26baa31
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.png
new file mode 100644
index 0000000..2ca772d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.png
new file mode 100644
index 0000000..e4d7e81
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.png
new file mode 100644
index 0000000..3e74b6a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.png
new file mode 100644
index 0000000..878a351
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.png
new file mode 100644
index 0000000..c5fd136
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.png
new file mode 100644
index 0000000..b8f6d0f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.png
new file mode 100644
index 0000000..89692f7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_IT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.png
new file mode 100644
index 0000000..7be119e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.png
new file mode 100644
index 0000000..11bd497
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.png
new file mode 100644
index 0000000..325fbad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_JP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.png
new file mode 100644
index 0000000..51879ad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.png
new file mode 100644
index 0000000..0a818f6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.png
new file mode 100644
index 0000000..30f6bb1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.png
new file mode 100644
index 0000000..2dcce4b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.png
new file mode 100644
index 0000000..812b2f5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.png
new file mode 100644
index 0000000..febd5b4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.png
new file mode 100644
index 0000000..d3d509a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.png
new file mode 100644
index 0000000..9c0a78e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.png
new file mode 100644
index 0000000..96546da
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.png
new file mode 100644
index 0000000..15c5f8e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.png
new file mode 100644
index 0000000..45a8c88
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_KZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.png
new file mode 100644
index 0000000..e28acd0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.png
new file mode 100644
index 0000000..d0d452b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.png
new file mode 100644
index 0000000..a47d065
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.png
new file mode 100644
index 0000000..6469909
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.png
new file mode 100644
index 0000000..088aad6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.png
new file mode 100644
index 0000000..89a5bc7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.png
new file mode 100644
index 0000000..33fdef1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.png
new file mode 100644
index 0000000..c8ef0da
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.png
new file mode 100644
index 0000000..4cabba9
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.png
new file mode 100644
index 0000000..49b6998
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.png
new file mode 100644
index 0000000..b163a9f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_LY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.png
new file mode 100644
index 0000000..f386770
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.png
new file mode 100644
index 0000000..1aa830f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.png
new file mode 100644
index 0000000..4e92c18
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.png
new file mode 100644
index 0000000..ac72535
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ME.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.png
new file mode 100644
index 0000000..d2715b3
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.png
new file mode 100644
index 0000000..fb523a8
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.png
new file mode 100644
index 0000000..db173aa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.png
new file mode 100644
index 0000000..2cec8ba
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ML.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.png
new file mode 100644
index 0000000..f464f67
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.png
new file mode 100644
index 0000000..9396355
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.png
new file mode 100644
index 0000000..deb801d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.png
new file mode 100644
index 0000000..298d588
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.png
new file mode 100644
index 0000000..010143b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MQ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.png
new file mode 100644
index 0000000..319546b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.png
new file mode 100644
index 0000000..d4cbb43
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.png
new file mode 100644
index 0000000..00af948
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.png
new file mode 100644
index 0000000..b7fdce1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.png
new file mode 100644
index 0000000..5073d9e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.png
new file mode 100644
index 0000000..13886e9
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.png
new file mode 100644
index 0000000..5bc58ab
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MX.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.png
new file mode 100644
index 0000000..9034cba
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.png
new file mode 100644
index 0000000..76405e0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_MZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.png
new file mode 100644
index 0000000..63358c6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.png
new file mode 100644
index 0000000..2cad283
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.png
new file mode 100644
index 0000000..d85f424
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.png
new file mode 100644
index 0000000..f9bcdda
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.png
new file mode 100644
index 0000000..3eea2e0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.png
new file mode 100644
index 0000000..3969aaa
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.png
new file mode 100644
index 0000000..fe44791
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.png
new file mode 100644
index 0000000..160b6b5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.png
new file mode 100644
index 0000000..aeb058b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NP.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.png
new file mode 100644
index 0000000..705fc33
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.png
new file mode 100644
index 0000000..c3ce4ae
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.png
new file mode 100644
index 0000000..10d6306
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_NZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.png
new file mode 100644
index 0000000..2ffba7e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_OM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.png
new file mode 100644
index 0000000..9b2ee9a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.png
new file mode 100644
index 0000000..62a0497
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.png
new file mode 100644
index 0000000..771a0f6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.png
new file mode 100644
index 0000000..10d6233
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.png
new file mode 100644
index 0000000..b89e159
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.png
new file mode 100644
index 0000000..e9df70c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.png
new file mode 100644
index 0000000..d413d01
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.png
new file mode 100644
index 0000000..ba91d2c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.png
new file mode 100644
index 0000000..aa9344f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.png
new file mode 100644
index 0000000..82d9130
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.png
new file mode 100644
index 0000000..f5f5477
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.png
new file mode 100644
index 0000000..ece7980
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.png
new file mode 100644
index 0000000..6178b25
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.png
new file mode 100644
index 0000000..cb8723c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_PY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.png
new file mode 100644
index 0000000..ed4c621
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_QA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.png
new file mode 100644
index 0000000..57e74a6
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.png
new file mode 100644
index 0000000..9439a5b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.png
new file mode 100644
index 0000000..47da421
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.png
new file mode 100644
index 0000000..5356491
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_RW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.png
new file mode 100644
index 0000000..b4641c7
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.png
new file mode 100644
index 0000000..a9937cc
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SB.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.png
new file mode 100644
index 0000000..39ee371
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.png
new file mode 100644
index 0000000..eaab69e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.png
new file mode 100644
index 0000000..1994653
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.png
new file mode 100644
index 0000000..dd34d61
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.png
new file mode 100644
index 0000000..4b1d2a2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.png
new file mode 100644
index 0000000..bb1476f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.png
new file mode 100644
index 0000000..7ccbc82
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.png
new file mode 100644
index 0000000..12d812d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.png
new file mode 100644
index 0000000..3df2fdc
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.png
new file mode 100644
index 0000000..eabb71d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.png
new file mode 100644
index 0000000..4a1ea4b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.png
new file mode 100644
index 0000000..5eff927
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.png
new file mode 100644
index 0000000..2978557
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ST.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.png
new file mode 100644
index 0000000..2498799
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.png
new file mode 100644
index 0000000..f5ce30d
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.png
new file mode 100644
index 0000000..914ee86
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_SZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.png
new file mode 100644
index 0000000..8fc1156
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.png
new file mode 100644
index 0000000..667f21f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TD.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.png
new file mode 100644
index 0000000..80529a4
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.png
new file mode 100644
index 0000000..3aa00ad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.png
new file mode 100644
index 0000000..dd8ba91
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TH.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.png
new file mode 100644
index 0000000..617bf64
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TJ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.png
new file mode 100644
index 0000000..67b8c8c
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TK.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.png
new file mode 100644
index 0000000..77da181
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TL.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.png
new file mode 100644
index 0000000..828020e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.png
new file mode 100644
index 0000000..183cdd3
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.png
new file mode 100644
index 0000000..f89b8ba
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TO.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.png
new file mode 100644
index 0000000..be32f77
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TR.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.png
new file mode 100644
index 0000000..2a11c1e
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.png
new file mode 100644
index 0000000..28274c5
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TV.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.png
new file mode 100644
index 0000000..f31c654
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.png
new file mode 100644
index 0000000..c00ff79
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_TZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.png
new file mode 100644
index 0000000..09563a2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.png
new file mode 100644
index 0000000..33f4aff
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.png
new file mode 100644
index 0000000..10f451f
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_US.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.png
new file mode 100644
index 0000000..31d948a
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UY.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.png
new file mode 100644
index 0000000..fef5dc1
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_UZ.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.png
new file mode 100644
index 0000000..b31eaf2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.png
new file mode 100644
index 0000000..8fa17b0
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VC.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.png
new file mode 100644
index 0000000..00c90f9
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.png
new file mode 100644
index 0000000..4156907
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VG.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.png
new file mode 100644
index 0000000..ed26915
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VI.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.png
new file mode 100644
index 0000000..ec7cd48
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VN.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.png
new file mode 100644
index 0000000..b3397bc
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_VU.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.png
new file mode 100644
index 0000000..9f95587
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WF.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.png
new file mode 100644
index 0000000..c169508
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_WS.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.png
new file mode 100644
index 0000000..468dfad
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YE.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.png
new file mode 100644
index 0000000..c298f37
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_YT.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.png
new file mode 100644
index 0000000..57c58e2
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZA.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.png
new file mode 100644
index 0000000..c25b07b
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZM.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.png
new file mode 100644
index 0000000..53c9725
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/flag_ZW.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/coins.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/money.png
index 2c28453..2c28453 100644
--- a/Plugins/emoticons/data/Customize/Emoticons/Tango/coins.png
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/money.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/talking.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/talking.png
new file mode 100644
index 0000000..8d2cc88
--- /dev/null
+++ b/Plugins/emoticons/data/Customize/Emoticons/Tango/talking.png
Binary files differ
diff --git a/Plugins/emoticons/data/Customize/Emoticons/Tango/usa.png b/Plugins/emoticons/data/Customize/Emoticons/Tango/usa.png
deleted file mode 100644
index aff8637..0000000
--- a/Plugins/emoticons/data/Customize/Emoticons/Tango/usa.png
+++ /dev/null
Binary files differ
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo b/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo
index c4dd7b6..6773c7e 100644
--- a/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo
+++ b/Plugins/emoticons/data/Plugins/Emoticons/MSN.emo
@@ -72,7 +72,7 @@
"brb" = "Be right back", "(brb)"
"rain" = "Storm cloud", "(st)"
"highfive" = "Hi five!", "(h5)"
-"coins" = "Money", "(mo)"
+"money" = "Money", "(mo)"
"dont-know" = "", ":^)"
"thunder" = "", "(li)"
"console" = "XBox", "(xx)"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo b/Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo
new file mode 100644
index 0000000..b354d20
--- /dev/null
+++ b/Plugins/emoticons/data/Plugins/Emoticons/SAMETIME.emo
@@ -0,0 +1,18 @@
+# Sametime protocol
+
+[Sametime]
+
+"angel" = "angel", "0:-)" "0:)"
+"angry" = "angry", ":-@"
+"sad" = "frown", ":-(" ":("
+"laugh" = "grin", ":-D" ":-d"
+"thinking" = "half", ":-/"
+"shock" = "oops", ":-O" ":-0" ":-o" ":O" ":0" ":o"
+"sarcastic" = "eyebrow", "/:)"
+"smile" = "smile", ":-)" ":)"
+"tongue" = "tongue", ":-P" ":P"
+"wink" = "wink", ";)" ";-)"
+"lamp" = "idea", "(i)" "(I)"
+"crying" = "crying", ":'("
+"confused" = "goofy", ":-S" ":-s"
+"embarrassed" = "shy", ":-$"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/Skype.emo b/Plugins/emoticons/data/Plugins/Emoticons/Skype.emo
new file mode 100644
index 0000000..562620a
--- /dev/null
+++ b/Plugins/emoticons/data/Plugins/Emoticons/Skype.emo
@@ -0,0 +1,333 @@
+# Skipe protocol
+
+[Skype]
+
+"smile" = "Smile", ":)" ":=)" ":-)"
+"sad" = "Sad Smile", ":(" ":=(" ":-("
+"laugh" = "Big Smile", ":D" ":=D" ":-D" ":d" ":=d" ":-d"
+"glass-cool" = "Cool", "8)" "8=)" "8-)" "B)" "B=)" "B-)" "(cool)"
+"wink" = "Wink", ":o" ":=o" ":-o" ":O" ":=O" ":-O"
+"crying" = "Crying", ";(" ";-(" ";=("
+"sweat" = "Sweating", "(sweat)" "(:|"
+"neutral" = "Speechless", ":|" ":=|" ":-|"
+"kiss" = "Kiss", ":*" ":=*" ":-*"
+"tongue" = "Tongue Out", ":P" ":=P" ":-P" ":p" ":=p" ":-p"
+"embarrassed" = "Blush", "(blush)" ":$" ":-$" ":=$" ":">"
+"sarcastic" = "Wondering", ":^)"
+"sleepy" = "Sleepy", "|-)" "I-)" "I=)" "(snooze)"
+"boring" = "Dull", "|(" "|-(" "|=("
+"in-love" = "In love", "(inlove)"
+"mean" = "Evil grin", "]:)" ">:)" "(grin)"
+"talking" = "Talking", "(talk)"
+"yawn" = "Yawn", "(yawn)" "|-()"
+"sick" = "Puke", "(puke)" ":&amp;" ":-&amp;" ":=&amp;"
+"doh" = "Doh!", "(doh)"
+"angry" = "Angry", ":@" ":-@" ":=@" "x(" "x-(" "x=(" "X(" "X-(" "X=("
+"eyeroll" = "It wasn't me", "(wasntme)"
+"party" = "Party!!!", "(party)"
+"confused" = "Worried", ":S" ":-S" ":=S" ":s" ":-s" ":=s"
+"curl-lip" = "Mmm...", "(mm)"
+"glass-nerdy" = "Nerd", "8-|" "B-|" "8|" "B|" "8=|" "B=|" "(nerd)"
+"shut-mouth" = "Lips Sealed", ":x" ":-x" ":X" ":-X" ":#" ":-#" ":=x" ":=X" ":=#"
+"bye" = "Hi", "(hi)"
+"call-me" = "Call", "(call)"
+"devilish" = "Devil", "(devil)"
+"angel" = "Angel", "(angel)"
+"envy" = "Envy", "(envy)"
+"wait" = "Wait", "(wait)"
+"bear" = "Bear", "(bear)" "(hug)"
+"make-up" = "Make-up", "(makeup)" "(kate)"
+"giggle" = "Covered Laugh", "(giggle)" "(chuckle)"
+"clap" = "Clapping Hands", "(clap)"
+"thinking" = "Thinking", "(think)" ":?" ":-?" ":=?"
+"worship" = "Bow", "(bow)"
+"rotfl" = "Rolling on the floor laughing", "(rofl)"
+"whew" = "Whew", "(whew)"
+"smile-big" = "Happy", "(happy)"
+"smirk" = "Smirking", "(smirk)"
+"nodding" = "Nodding", "(nod)"
+"shaking" = "Shaking", "(shake)"
+"punch" = "Punch", "(punch)"
+"emo" = "Emo", "(emo)"
+"yes" = "Yes", "(y)" "(Y)" "(ok)"
+"no" = "No", "(n)" "(N)"
+"handshake" = "Shaking Hands", "(handshake)"
+"skype" = "Skype", "(skype)" "(ss)"
+"love" = "Heart", "(h)" "(H)" "(l)" "(L)"
+"love-over" = "Broken heart", "(u)" "(U)"
+"mail" = "Mail", "(e)" "(m)"
+"rose" = "Flower", "(f)" "(F)"
+"rain" = "Rain", "(rain)" "(london)" "(st)"
+"sun" = "Sun", "(sun)"
+"clock" = "Time", "(o)" "(O)" "(time)"
+"music" = "Music", "(music)"
+"film" = "Movie", "(~)" "(film)" "(movie)"
+"phone" = "Phone", "(mp)" "(ph)"
+"coffee" = "Coffee", "(coffee)"
+"pizza" = "Pizza", "(pizza)" "(pi)"
+"money" = "Cash", "(cash)" "(mo)" "($)"
+"muscle" = "Muscle", "(muscle)" "(flex)"
+"cake" = "Cake", "(^)" "(cake)"
+"beer" = "Beer", "(beer)"
+"drink" = "Drink", "(d)" "(D)"
+"dance" = "Dance", "(dance)" "\o/" "\:D/" "\:d/"
+"ninja" = "Ninja", "(ninja)"
+"star" = "Star", "(*)"
+
+[Hidden]
+
+"mooning" = "Mooning", "(mooning)"
+"finger" = "Finger", "(finger)"
+"bandit" = "Bandit", "(bandit)"
+"drunk" = "Drunk", "(drunk)"
+"cigarette" = "Smoking", "(smoking)" "(smoke)" "(ci)"
+"toivo" = "Toivo", "(toivo)"
+"rock" = "Rock", "(rock)"
+"headbang" = "Headbang", "(headbang)" "(banghead)"
+"bug" = "Bug", "(bug)"
+"fubar" = "Fubar", "(fubar)"
+"poolparty" = "Poolparty", "(poolparty)"
+"swearing" = "Swearing", "(swear)"
+"tmi" = "TMI", "(tmi)"
+"heidy" = "Heidy", "(heidy)"
+
+[Flags]
+
+"flag_AF" = "Afghanistan", "(flag:AF)"
+"flag_AL" = "Albania", "(flag:AL)"
+"flag_DZ" = "Algeria", "(flag:DZ)"
+"flag_AS" = "American Samoa", "(flag:AS)"
+"flag_AD" = "Andorra", "(flag:AD)"
+"flag_AO" = "Angola", "(flag:AO)"
+"flag_AI" = "Anguilla", "(flag:AI)"
+"flag_AQ" = "Antarctica", "(flag:AQ)"
+"flag_AG" = "Antigua and Barbuda", "(flag:AG)"
+"flag_AR" = "Argentina", "(flag:AR)"
+"flag_AM" = "Armenia", "(flag:AM)"
+"flag_AW" = "Aruba", "(flag:AW)"
+"flag_AU" = "Australia", "(flag:AU)"
+"flag_AT" = "Austria", "(flag:AT)"
+"flag_AZ" = "Azerbaijan", "(flag:AZ)"
+"flag_BS" = "Bahamas", "(flag:BS)"
+"flag_BH" = "Bahrain", "(flag:BH)"
+"flag_BD" = "Bangladesh", "(flag:BD)"
+"flag_BB" = "Barbados", "(flag:BB)"
+"flag_BY" = "Belarus", "(flag:BY)"
+"flag_BE" = "Belgium", "(flag:BE)"
+"flag_BZ" = "Belize", "(flag:BZ)"
+"flag_BJ" = "Benin", "(flag:BJ)"
+"flag_BM" = "Bermuda", "(flag:BM)"
+"flag_BT" = "Bhutan", "(flag:BT)"
+"flag_BO" = "Bolivia", "(flag:BO)"
+"flag_BA" = "Bosnia and Herzegovina", "(flag:BA)"
+"flag_BW" = "Botswana", "(flag:BW)"
+"flag_BR" = "Brazil", "(flag:BR)"
+"flag_IO" = "British Indian Ocean Territory", "(flag:IO)"
+"flag_VG" = "British Virgin Islands", "(flag:VG)"
+"flag_BN" = "Brunei Darussalam", "(flag:BN)"
+"flag_BG" = "Bulgaria", "(flag:BG)"
+"flag_BF" = "Burkina Faso", "(flag:BF)"
+"flag_BI" = "Burundi", "(flag:BI)"
+"flag_KH" = "Cambodia", "(flag:KH)"
+"flag_CM" = "Cameroon", "(flag:CM)"
+"flag_CA" = "Canada", "(flag:CA)"
+"flag_CV" = "Cape Verde", "(flag:CV)"
+"flag_KY" = "Cayman Islands", "(flag:KY)"
+"flag_CF" = "Central African Republic", "(flag:CF)"
+"flag_TD" = "Chad", "(flag:TD)"
+"flag_CL" = "Chile", "(flag:CL)"
+"flag_CN" = "China", "(flag:CN)"
+"flag_CX" = "Christmas Island", "(flag:CX)"
+"flag_CC" = "Cocos Islands", "(flag:CC)"
+"flag_CO" = "Colombia", "(flag:CO)"
+"flag_KM" = "Comoros", "(flag:KM)"
+"flag_CD" = "Congo", "(flag:CD)"
+"flag_CG" = "Congo", "(flag:CG)"
+"flag_CK" = "Cook Islands", "(flag:CK)"
+"flag_CR" = "Costa Rica", "(flag:CR)"
+"flag_CI" = "Cote D’Ivoire", "(flag:CI)"
+"flag_CU" = "Cuba", "(flag:CU)"
+"flag_CY" = "Cyprus", "(flag:CY)"
+"flag_CZ" = "Czech Republic", "(flag:CZ)"
+"flag_DK" = "Denmark", "(flag:DK)"
+"flag_DJ" = "Djibouti", "(flag:DJ)"
+"flag_DM" = "Dominica", "(flag:DM)"
+"flag_DO" = "Dominican Republic", "(flag:DO)"
+"flag_EC" = "Ecuador", "(flag:EC)"
+"flag_EG" = "Egypt", "(flag:EG)"
+"flag_EU" = "European Union", "(flag:EU)"
+"flag_SV" = "El Salvador", "(flag:SV)"
+"flag_GQ" = "Equatorial Guinea", "(flag:GQ)"
+"flag_ER" = "Eritrea", "(flag:ER)"
+"flag_EE" = "Estonia", "(flag:EE)"
+"flag_ET" = "Ethiopia", "(flag:ET)"
+"flag_FO" = "Faeroe Islands", "(flag:FO)"
+"flag_FK" = "Falkland Islands", "(flag:FK)"
+"flag_FJ" = "Fiji", "(flag:FJ)"
+"flag_FI" = "Finland", "(flag:FI)"
+"flag_FR" = "France", "(flag:FR)"
+"flag_GF" = "French Guiana", "(flag:GF)"
+"flag_PF" = "French Polynesia", "(flag:PF)"
+"flag_TF" = "French Southern Territories", "(flag:TF)"
+"flag_GA" = "Gabon", "(flag:GA)"
+"flag_GM" = "Gambia", "(flag:GM)"
+"flag_GE" = "Georgia", "(flag:GE)"
+"flag_DE" = "Germany", "(flag:DE)"
+"flag_GH" = "Ghana", "(flag:GH)"
+"flag_GI" = "Gibraltar", "(flag:GI)"
+"flag_GR" = "Greece", "(flag:GR)"
+"flag_GL" = "Greenland", "(flag:GL)"
+"flag_GD" = "Grenada", "(flag:GD)"
+"flag_GP" = "Guadaloupe", "(flag:GP)"
+"flag_GU" = "Guam", "(flag:GU)"
+"flag_GT" = "Guatemala", "(flag:GT)"
+"flag_GN" = "Guinea", "(flag:GN)"
+"flag_GW" = "Guinea-Bissau", "(flag:GW)"
+"flag_GY" = "Guyana", "(flag:GY)"
+"flag_HT" = "Haiti", "(flag:HT)"
+"flag_HM" = "Heard and McDonald Islands", "(flag:HM)"
+"flag_VA" = "Holy See (Vatican City State)", "(flag:VA)"
+"flag_HN" = "Honduras", "(flag:HN)"
+"flag_HK" = "Hong Kong", "(flag:HK)"
+"flag_HR" = "Hrvatska", "(flag:HR)"
+"flag_HU" = "Hungary", "(flag:HU)"
+"flag_IS" = "Iceland", "(flag:IS)"
+"flag_IN" = "India", "(flag:IN)"
+"flag_ID" = "Indonesia", "(flag:ID)"
+"flag_IR" = "Iran", "(flag:IR)"
+"flag_IQ" = "Iraq", "(flag:IQ)"
+"flag_IE" = "Ireland", "(flag:IE)"
+"flag_IL" = "Israel", "(flag:IL)"
+"flag_IT" = "Italy", "(flag:IT)"
+"flag_JM" = "Jamaica", "(flag:JM)"
+"flag_JP" = "Japan", "(flag:JP)"
+"flag_JO" = "Jordan", "(flag:JO)"
+"flag_KZ" = "Kazakhstan", "(flag:KZ)"
+"flag_KE" = "Kenya", "(flag:KE)"
+"flag_KI" = "Kiribati", "(flag:KI)"
+"flag_KP" = "Korea", "(flag:KP)"
+"flag_KR" = "Korea", "(flag:KR)"
+"flag_KW" = "Kuwait", "(flag:KW)"
+"flag_KG" = "Kyrgyz Republic", "(flag:KG)"
+"flag_LA" = "Lao", "(flag:LA)"
+"flag_LV" = "Latvia", "(flag:LV)"
+"flag_LB" = "Lebanon", "(flag:LB)"
+"flag_LS" = "Lesotho", "(flag:LS)"
+"flag_LR" = "Liberia", "(flag:LR)"
+"flag_LY" = "Libyan Arab Jamahiriya", "(flag:LY)"
+"flag_LI" = "Liechtenstein", "(flag:LI)"
+"flag_LT" = "Lithuania", "(flag:LT)"
+"flag_LU" = "Luxembourg", "(flag:LU)"
+"flag_MO" = "Macao", "(flag:MO)"
+"flag_ME" = "Montenegro", "(flag:ME)"
+"flag_MK" = "Macedonia", "(flag:MK)"
+"flag_MG" = "Madagascar", "(flag:MG)"
+"flag_MW" = "Malawi", "(flag:MW)"
+"flag_MY" = "Malaysia", "(flag:MY)"
+"flag_MV" = "Maldives", "(flag:MV)"
+"flag_ML" = "Mali", "(flag:ML)"
+"flag_MT" = "Malta", "(flag:MT)"
+"flag_MH" = "Marshall Islands", "(flag:MH)"
+"flag_MQ" = "Martinique", "(flag:MQ)"
+"flag_MR" = "Mauritania", "(flag:MR)"
+"flag_MU" = "Mauritius", "(flag:MU)"
+"flag_YT" = "Mayotte", "(flag:YT)"
+"flag_MX" = "Mexico", "(flag:MX)"
+"flag_FM" = "Micronesia", "(flag:FM)"
+"flag_MD" = "Moldova", "(flag:MD)"
+"flag_MC" = "Monaco", "(flag:MC)"
+"flag_MN" = "Mongolia", "(flag:MN)"
+"flag_MS" = "Montserrat", "(flag:MS)"
+"flag_MA" = "Morocco", "(flag:MA)"
+"flag_MZ" = "Mozambique", "(flag:MZ)"
+"flag_MM" = "Myanmar", "(flag:MM)"
+"flag_NA" = "Namibia", "(flag:NA)"
+"flag_NR" = "Nauru", "(flag:NR)"
+"flag_NP" = "Nepal", "(flag:NP)"
+"flag_AN" = "Netherlands Antilles", "(flag:AN)"
+"flag_NL" = "Netherlands", "(flag:NL)"
+"flag_NC" = "New Caledonia", "(flag:NC)"
+"flag_NZ" = "New Zealand", "(flag:NZ)"
+"flag_NI" = "Nicaragua", "(flag:NI)"
+"flag_NE" = "Niger", "(flag:NE)"
+"flag_NG" = "Nigeria", "(flag:NG)"
+"flag_NU" = "Niue", "(flag:NU)"
+"flag_NF" = "Norfolk Island", "(flag:NF)"
+"flag_MP" = "Northern Mariana Islands", "(flag:MP)"
+"flag_NO" = "Norway", "(flag:NO)"
+"flag_OM" = "Oman", "(flag:OM)"
+"flag_PK" = "Pakistan", "(flag:PK)"
+"flag_PW" = "Palau", "(flag:PW)"
+"flag_PS" = "Palestina", "(flag:PS)"
+"flag_PA" = "Panama", "(flag:PA)"
+"flag_PG" = "Papua New Guinea", "(flag:PG)"
+"flag_PY" = "Paraguay", "(flag:PY)"
+"flag_PE" = "Peru", "(flag:PE)"
+"flag_PH" = "Philippines", "(flag:PH)"
+"flag_PN" = "Pitcairn Island", "(flag:PN)"
+"flag_PL" = "Poland", "(flag:PL)"
+"flag_PT" = "Portugal", "(flag:PT)"
+"flag_PR" = "Puerto Rico", "(flag:PR)"
+"flag_QA" = "Qatar", "(flag:QA)"
+"flag_RE" = "Reunion", "(flag:RE)"
+"flag_RO" = "Romania", "(flag:RO)"
+"flag_RS" = "Serbia", "(flag:RS)"
+"flag_RU" = "Russian Federation", "(flag:RU)"
+"flag_RW" = "Rwanda", "(flag:RW)"
+"flag_SH" = "St. Helena", "(flag:SH)"
+"flag_KN" = "St. Kitts and Nevis", "(flag:KN)"
+"flag_LC" = "St. Lucia", "(flag:LC)"
+"flag_PM" = "St. Pierre and Miquelon", "(flag:PM)"
+"flag_VC" = "St. Vincent and the Grenadines", "(flag:VC)"
+"flag_WS" = "Samoa", "(flag:WS)"
+"flag_SM" = "San Marino", "(flag:SM)"
+"flag_ST" = "Sao Tome and Principe", "(flag:ST)"
+"flag_SA" = "Saudi Arabia", "(flag:SA)"
+"flag_SN" = "Senegal", "(flag:SN)"
+"flag_CS" = "Serbia and Montenegro", "(flag:CS)"
+"flag_SC" = "Seychelles", "(flag:SC)"
+"flag_SL" = "Sierra Leone", "(flag:SL)"
+"flag_SG" = "Singapore", "(flag:SG)"
+"flag_SK" = "Slovakia", "(flag:SK)"
+"flag_SI" = "Slovenia", "(flag:SI)"
+"flag_SB" = "Solomon Islands", "(flag:SB)"
+"flag_SO" = "Somalia", "(flag:SO)"
+"flag_ZA" = "South Africa", "(flag:ZA)"
+"flag_ES" = "Spain", "(flag:ES)"
+"flag_LK" = "Sri Lanka", "(flag:LK)"
+"flag_SD" = "Sudan", "(flag:SD)"
+"flag_SR" = "Suriname", "(flag:SR)"
+"flag_SZ" = "Swaziland", "(flag:SZ)"
+"flag_SE" = "Sweden", "(flag:SE)"
+"flag_CH" = "Switzerland", "(flag:CH)"
+"flag_SY" = "Syria", "(flag:SY)"
+"flag_TW" = "Taiwan", "(flag:TW)"
+"flag_TJ" = "Tajikistan", "(flag:TJ)"
+"flag_TZ" = "Tanzania", "(flag:TZ)"
+"flag_TH" = "Thailand", "(flag:TH)"
+"flag_TL" = "Timor-Leste", "(flag:TL)"
+"flag_TG" = "Togo", "(flag:TG)"
+"flag_TK" = "Tokelau", "(flag:TK)"
+"flag_TO" = "Tonga", "(flag:TO)"
+"flag_TT" = "Trinidad and Tobago", "(flag:TT)"
+"flag_TN" = "Tunisia", "(flag:TN)"
+"flag_TR" = "Turkey", "(flag:TR)"
+"flag_TM" = "Turkmenistan", "(flag:TM)"
+"flag_TC" = "Turks and Caicos Islands", "(flag:TC)"
+"flag_TV" = "Tuvalu", "(flag:TV)"
+"flag_VI" = "US Virgin Islands", "(flag:VI)"
+"flag_UG" = "Uganda", "(flag:UG)"
+"flag_UA" = "Ukraine", "(flag:UA)"
+"flag_AE" = "United Arab Emirates", "(flag:AE)"
+"flag_GB" = "United Kingdom", "(flag:GB)"
+"flag_US" = "United States of America", "(flag:US)"
+"flag_UY" = "Uruguay", "(flag:UY)"
+"flag_UZ" = "Uzbekistan", "(flag:UZ)"
+"flag_VU" = "Vanuatu", "(flag:VU)"
+"flag_VE" = "Venezuela", "(flag:VE)"
+"flag_VN" = "Viet Nam", "(flag:VN)"
+"flag_WF" = "Wallis and Futuna Islands", "(flag:WF)"
+"flag_EH" = "Western Sahara", "(flag:EH)"
+"flag_YE" = "Yemen", "(flag:YE)"
+"flag_ZM" = "Zambia", "(flag:ZM)"
+"flag_ZW" = "Zimbabwe", "(flag:ZW)"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo b/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo
index bb73674..1a8a041 100644
--- a/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo
+++ b/Plugins/emoticons/data/Plugins/Emoticons/YAHOO.emo
@@ -1,5 +1,7 @@
# Yahoo protocol emoticons
+[Yahoo]
+
"smile" = "Happy", ":)" ":-)"
"sad" = "Sad", ":(" ":-("
"wink" = "Winking", ";)" ";-)"
@@ -54,6 +56,9 @@
"weep" = "Sigh", ":-<"
"mad-tongue" = "phbbbbt", ">:P" ">:p"
"cowboy" = "Cowboy", "<):)"
+
+[Hidden]
+
"dog" = "Puppy dog eyes", ":o3" ":O3"
"dont-know" = "I don't know", ":-??"
"not-listening" = "Not listening", "%-("
@@ -63,7 +68,7 @@
"chicken" = "Chicken", "~:>"
"rose" = "Rose", "@};-"
"clover" = "Good luck", "%%-"
-"usa" = "Flag", "**=="
+"flag_US" = "Flag", "**=="
"pumpkin" = "Pumpkin", "(~~)"
"coffee" = "Coffee", "~O)" "~o)"
"lamp" = "Idea", "*-:)"
@@ -72,7 +77,7 @@
"alien" = "Alien", ">-)"
"disapointed" = "Frustrated", ":-L" ":-l"
"pray" = "Praying", "[-O<" "[-o<"
-"coins" = "Money eyes", "$-)"
+"money" = "Money eyes", "$-)"
"music" = "Whistling", ":-\""
"beat-up" = "Feeling beat up", "b-(" "B-("
"peace" = "Peace sign", ":)>-"
diff --git a/Plugins/emoticons/data/Plugins/Emoticons/downloading.gif b/Plugins/emoticons/data/Plugins/Emoticons/downloading.gif
deleted file mode 100644
index a34a48d..0000000
--- a/Plugins/emoticons/data/Plugins/Emoticons/downloading.gif
+++ /dev/null
Binary files differ
diff --git a/Plugins/emoticons/emoticons.cpp b/Plugins/emoticons/emoticons.cpp
index 54f8175..c964fd5 100644
--- a/Plugins/emoticons/emoticons.cpp
+++ b/Plugins/emoticons/emoticons.cpp
@@ -30,7 +30,7 @@ PLUGININFOEX pluginInfo={
#else
"Emoticons",
#endif
- PLUGIN_MAKE_VERSION(0,0,1,5),
+ PLUGIN_MAKE_VERSION(0,0,1,6),
"Emoticons",
"Ricardo Pescuma Domenecci",
"",
@@ -797,7 +797,7 @@ int RestoreInput(RichEditCtrl &rec, int start = 0, int end = -1)
ITooltipData *ttd = NULL;
hr = reObj.poleobj->QueryInterface(__uuidof(ITooltipData), (void**) &ttd);
reObj.poleobj->Release();
- if (SUCCEEDED(hr) && ttd == NULL)
+ if (FAILED(hr) || ttd == NULL)
continue;
BSTR hint = NULL;
@@ -1276,7 +1276,7 @@ void LoadModules()
}
}
-void HandleEmoLine(Module *m, char *tmp)
+void HandleEmoLine(Module *m, char *tmp, char *group)
{
int len = strlen(tmp);
int state = 0;
@@ -1328,6 +1328,7 @@ void HandleEmoLine(Module *m, char *tmp)
case 1:
e = new Emoticon();
e->name = mir_t2a(txt);
+ e->group = group;
MIR_FREE(txt);
break;
case 3:
@@ -1358,6 +1359,7 @@ BOOL LoadModule(Module *m)
char tmp[1024];
char c;
int pos = 0;
+ char *group = NULL;
do
{
c = fgetc(file);
@@ -1365,7 +1367,24 @@ BOOL LoadModule(Module *m)
if (c == '\n' || c == '\r' || c == EOF || pos >= MAX_REGS(tmp) - 1)
{
tmp[pos] = 0;
- HandleEmoLine(m, tmp);
+ strtrim(tmp);
+ size_t len = strlen(tmp);
+
+ if (tmp[0] == '#')
+ {
+ // Do nothing
+ }
+ else if (tmp[0] == '[' && tmp[len-1] == ']')
+ {
+ tmp[len-1] = '\0';
+ strtrim(&tmp[1]);
+ group = mir_strdup(&tmp[1]);
+ }
+ else
+ {
+ HandleEmoLine(m, tmp, group);
+ }
+
pos = 0;
}
else
@@ -1427,7 +1446,7 @@ BOOL isValidExtension(char *name)
&& strcmp(p, ".jpeg") != 0
&& strcmp(p, ".gif") != 0
&& strcmp(p, ".png") != 0
- /*&& strcmp(p, ".swf") != 0*/)
+ && strcmp(p, ".swf") != 0)
return FALSE;
return TRUE;
}
@@ -1443,7 +1462,7 @@ BOOL isValidExtension(WCHAR *name)
&& lstrcmpW(p, L".jpeg") != 0
&& lstrcmpW(p, L".gif") != 0
&& lstrcmpW(p, L".png") != 0
- /*&& lstrcmpW(p, L".swf") != 0*/)
+ && lstrcmpW(p, L".swf") != 0)
return FALSE;
return TRUE;
}
@@ -1456,10 +1475,11 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
int state = 0;
int pos;
int module_pos = -1;
+ BOOL noDelimiter;
EmoticonImage *img = NULL;
- for(int i = 0; i < len && state < 4; i++)
+ for(int i = 0; i <= len && state < 6; i++)
{
char c = line[i];
if (c == ' ')
@@ -1467,19 +1487,38 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
if ((state % 2) == 0)
{
- if (c != '"')
+ if (c == '"')
+ {
+ state ++;
+ pos = i+1;
+ noDelimiter = FALSE;
+ }
+ else if (c != '=' && c != ',' && c != ' ' && c != '\t' && c != '\r' && c != '\n')
+ {
+ state ++;
+ pos = i;
+ noDelimiter = TRUE;
+ }
+ else
+ {
continue;
-
- state ++;
- pos = i+1;
+ }
}
else
{
if (state == 1 && c == '\\') // Module name
module_pos = i;
- if (c != '"')
- continue;
+ if (noDelimiter)
+ {
+ if (c != ' ' && c != ',' && c != '=' && c != '\0')
+ continue;
+ }
+ else
+ {
+ if (c != '"')
+ continue;
+ }
line[i] = 0;
@@ -1503,12 +1542,15 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
switch(state)
{
case 1:
+ {
img = new EmoticonImage();
img->pack = p;
img->name = txt;
img->module = module;
break;
+ }
case 3:
+ {
if (!isValidExtension(txt))
{
delete img;
@@ -1536,6 +1578,13 @@ EmoticonImage * HandleMepLine(EmoticonPack *p, char *line)
img->relPath = txt;
}
break;
+ }
+ case 5:
+ {
+ img->selectionFrame = max(0, atoi(txt) - 1);
+ mir_free(txt);
+ break;
+ }
}
state++;
@@ -1596,7 +1645,11 @@ BOOL LoadPack(EmoticonPack *pack)
tmp[pos] = 0;
strtrim(tmp);
- if (strnicmp("Name:", tmp, 5) == 0)
+ if (tmp[0] == '#')
+ {
+ // Do nothing
+ }
+ else if (strnicmp("Name:", tmp, 5) == 0)
{
char *name = strtrim(&tmp[5]);
if (name[0] != '\0')
@@ -1770,10 +1823,7 @@ void FillModuleImages(EmoticonPack *pack)
if (e->img != NULL)
continue;
- TCHAR err[1024];
- mir_sntprintf(err, MAX_REGS(err), _T(" *** The pack '%s' does not have the emoticon '") _T(TCHAR_STR_PARAM) _T("' needed by ") _T(TCHAR_STR_PARAM) _T("\n"),
- pack->description, e->name, m->name);
- OutputDebugString(err);
+ log(" *** The pack '" TCHAR_STR_PARAM "' does not have the emoticon '%s' needed by %s\n", pack->description, e->name, m->name);
}
}
}
@@ -2015,10 +2065,286 @@ void EmoticonImage::Download()
if (FileExists(tmp))
return;
- downloadQueue->AddIfDontHave(0, (HANDLE) this);
+ downloadQueue->AddIfDontHave(1000, (HANDLE) this);
+}
+
+struct ANIMATED_GIF_DATA
+{
+ FIMULTIBITMAP *multi;
+ FIBITMAP *dib;
+ int frameCount;
+ RGBQUAD background;
+ int width;
+ int height;
+ BOOL transparent;
+
+ struct {
+ int top;
+ int left;
+ int width;
+ int height;
+ int disposal_method;
+ } frame;
+};
+
+BOOL AnimatedGifGetData(ANIMATED_GIF_DATA &ag)
+{
+ FIBITMAP *page = fei->FI_LockPage(ag.multi, 0);
+ if (page == NULL)
+ return FALSE;
+
+ // Get info
+ FITAG *tag = NULL;
+ if (!fei->FI_GetMetadata(FIMD_ANIMATION, page, "LogicalWidth", &tag))
+ goto ERR;
+ ag.width = *(WORD *)fei->FI_GetTagValue(tag);
+
+ if (!fei->FI_GetMetadata(FIMD_ANIMATION, page, "LogicalHeight", &tag))
+ goto ERR;
+ ag.height = *(WORD *)fei->FI_GetTagValue(tag);
+
+ if (fei->FI_HasBackgroundColor(page))
+ fei->FI_GetBackgroundColor(page, &ag.background);
+
+ fei->FI_UnlockPage(ag.multi, page, FALSE);
+ return TRUE;
+
+ERR:
+ fei->FI_UnlockPage(ag.multi, page, FALSE);
+ return FALSE;
+}
+
+
+void AnimatedGifMountFrame(ANIMATED_GIF_DATA &ag, int page)
+{
+ FIBITMAP *dib = fei->FI_LockPage(ag.multi, page);
+ if (dib == NULL)
+ return;
+
+ FITAG *tag = NULL;
+ if (fei->FI_GetMetadata(FIMD_ANIMATION, dib, "FrameLeft", &tag))
+ ag.frame.left = *(WORD *)fei->FI_GetTagValue(tag);
+ else
+ ag.frame.left = 0;
+
+ if (fei->FI_GetMetadata(FIMD_ANIMATION, dib, "FrameTop", &tag))
+ ag.frame.top = *(WORD *)fei->FI_GetTagValue(tag);
+ else
+ ag.frame.top = 0;
+
+ if (fei->FI_GetMetadata(FIMD_ANIMATION, dib, "DisposalMethod", &tag))
+ ag.frame.disposal_method = *(BYTE *)fei->FI_GetTagValue(tag);
+ else
+ ag.frame.disposal_method = 0;
+
+ ag.frame.width = fei->FI_GetWidth(dib);
+ ag.frame.height = fei->FI_GetHeight(dib);
+
+
+ //decode page
+ int palSize = fei->FI_GetColorsUsed(dib);
+ RGBQUAD *pal = fei->FI_GetPalette(dib);
+ BOOL have_transparent = FALSE;
+ int transparent_color = -1;
+ if( fei->FI_IsTransparent(dib) ) {
+ int count = fei->FI_GetTransparencyCount(dib);
+ BYTE *table = fei->FI_GetTransparencyTable(dib);
+ for( int i = 0; i < count; i++ ) {
+ if( table[i] == 0 ) {
+ ag.transparent = TRUE;
+ have_transparent = TRUE;
+ transparent_color = i;
+ break;
+ }
+ }
+ }
+
+ //copy page data into logical buffer, with full alpha opaqueness
+ for( int y = 0; y < ag.frame.height; y++ ) {
+ RGBQUAD *scanline = (RGBQUAD *)fei->FI_GetScanLine(ag.dib, ag.height - (y + ag.frame.top) - 1) + ag.frame.left;
+ BYTE *pageline = fei->FI_GetScanLine(dib, ag.frame.height - y - 1);
+ for( int x = 0; x < ag.frame.width; x++ ) {
+ if( !have_transparent || *pageline != transparent_color ) {
+ *scanline = pal[*pageline];
+ scanline->rgbReserved = 255;
+ }
+ scanline++;
+ pageline++;
+ }
+ }
+
+ fei->FI_UnlockPage(ag.multi, dib, FALSE);
}
+
+HBITMAP LoadAnimatedGifFrame(char *filename, int frame, DWORD *transp)
+{
+ HBITMAP ret = NULL;
+ ANIMATED_GIF_DATA ag = {0};
+ int x, y, i;
+
+ FREE_IMAGE_FORMAT fif = fei->FI_GetFileType(filename, 0);
+ if(fif == FIF_UNKNOWN)
+ fif = fei->FI_GetFIFFromFilename(filename);
+
+ ag.multi = fei->FI_OpenMultiBitmap(fif, filename, FALSE, TRUE, FALSE, GIF_LOAD256);
+ if (ag.multi == NULL)
+ return NULL;
+
+ ag.frameCount = fei->FI_GetPageCount(ag.multi);
+ if (ag.frameCount <= 1)
+ goto ERR;
+
+ if (!AnimatedGifGetData(ag))
+ goto ERR;
+
+ //allocate entire logical area
+ ag.dib = fei->FI_Allocate(ag.width, ag.height, 32, 0, 0, 0);
+ if (ag.dib == NULL)
+ goto ERR;
+
+ //fill with background color to start
+ for (y = 0; y < ag.height; y++)
+ {
+ RGBQUAD *scanline = (RGBQUAD *) fei->FI_GetScanLine(ag.dib, y);
+ for (x = 0; x < ag.width; x++)
+ *scanline++ = ag.background;
+ }
+
+ for (i = 0; i <= frame && i < ag.frameCount; i++)
+ AnimatedGifMountFrame(ag, i);
+
+ ret = fei->FI_CreateHBITMAPFromDIB(ag.dib);
+
+ if (transp != NULL)
+ *transp = ag.transparent;
+
+ERR:
+ if (ag.multi != NULL)
+ fei->FI_CloseMultiBitmap(ag.multi, 0);
+ if (ag.dib != NULL)
+ fei->FI_Unload(ag.dib);
+
+ return ret;
+}
+
+
+HBITMAP LoadFlashBitmap(char *filename, int frame = 0)
+{
+ typedef HRESULT (WINAPI *LPAtlAxAttachControl)(IUnknown* pControl, HWND hWnd, IUnknown** ppUnkContainer);
+ static LPAtlAxAttachControl AtlAxAttachControl3 = NULL;
+
+ if (AtlAxAttachControl3 == (LPAtlAxAttachControl) -1)
+ {
+ return NULL;
+ }
+ else if (AtlAxAttachControl3 == NULL)
+ {
+ HMODULE atl = LoadLibrary(_T("atl"));
+ if (atl == NULL)
+ {
+ AtlAxAttachControl3 = (LPAtlAxAttachControl) -1;
+ return NULL;
+ }
+ void* init = GetProcAddress(atl, "AtlAxWinInit");
+ AtlAxAttachControl3 = (LPAtlAxAttachControl) GetProcAddress(atl, "AtlAxAttachControl");
+ if (init == NULL || AtlAxAttachControl3 == NULL)
+ {
+ AtlAxAttachControl3 = (LPAtlAxAttachControl) -1;
+ return NULL;
+ }
+ _asm call init;
+ }
+
+ int width = 40;
+ int height = 40;
+ IShockwaveFlash *flash = NULL;
+ IViewObjectEx *viewObject = NULL;
+ HRESULT hr;
+ HWND hWindow = NULL;
+ HBITMAP hBmp = NULL;
+ HDC hdc = NULL;
+ BOOL succeded = FALSE;
+ double val;
+
+ hWindow = CreateWindow(_T("AtlAxWin"), _T(""), WS_POPUP, 0, 0, width, height, NULL, (HMENU) 0, hInst, NULL);
+ if (hWindow == NULL) goto err;
+
+ hr = CoCreateInstance(__uuidof(ShockwaveFlash), 0, CLSCTX_INPROC_SERVER, __uuidof(IShockwaveFlash), (void **) &flash);
+ if (FAILED(hr)) goto err;
+
+ hr = AtlAxAttachControl3(flash, hWindow, 0);
+ if (FAILED(hr)) goto err;
+
+ {
+ WCHAR *tmp = mir_a2u(filename);
+ BSTR url = SysAllocString(tmp);
+
+ hr = flash->LoadMovie(0, url);
+
+ SysFreeString(url);
+ mir_free(tmp);
+ }
+
+ if (FAILED(hr)) goto err;
+
+ hr = flash->TGetPropertyAsNumber(L"/", 8, &val);
+ if (FAILED(hr)) goto err;
+ width = (int)(val + 0.5);
+
+ hr = flash->TGetPropertyAsNumber(L"/", 9, &val);
+ if (FAILED(hr)) goto err;
+ height = (int)(val + 0.5);
+
+ MoveWindow(hWindow, 0, 0, width, height, FALSE);
+
+ hr = flash->GotoFrame(frame);
+ if (FAILED(hr)) goto err;
+
+ hr = flash->QueryInterface(__uuidof(IViewObjectEx), (void **)&viewObject);
+ if (FAILED(hr)) goto err;
+
+ hBmp = CreateBitmap32(width, height);
+
+ hdc = CreateCompatibleDC(NULL);
+ SelectObject(hdc, hBmp);
+ SetBkMode(hdc, TRANSPARENT);
+
+ {
+ RECTL rectl = { 0, 0, width, height };
+ hr = viewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdc, &rectl, &rectl, NULL, NULL);
+ if (FAILED(hr)) goto err;
+ }
+
+ succeded = TRUE;
+
+err:
+ if (hdc != NULL)
+ DeleteDC(hdc);
+
+ if (viewObject != NULL)
+ viewObject->Release();
+
+ if (flash != NULL)
+ flash->Release();
+
+ if (hWindow != NULL)
+ DestroyWindow(hWindow);
+
+ if (succeded)
+ {
+ return hBmp;
+ }
+ else
+ {
+ if (hBmp != NULL)
+ DeleteObject(hBmp);
+
+ return NULL;
+ }
+}
+
void EmoticonImage::Load(int &max_height, int &max_width)
{
if (img != NULL)
@@ -2033,11 +2359,23 @@ void EmoticonImage::Load(int &max_height, int &max_width)
}
DWORD transp;
-
char tmp[1024];
mir_snprintf(tmp, MAX_REGS(tmp), "%s\\%s", pack->path, relPath);
- img = (HBITMAP) CallService(MS_AV_LOADBITMAP32, (WPARAM) &transp, (LPARAM) tmp);
+ if (strcmp(&tmp[strlen(tmp)-4], ".swf") == 0)
+ {
+ img = LoadFlashBitmap(tmp, selectionFrame);
+ transp = TRUE;
+ }
+ else
+ {
+ // Try to get a frame
+ if (selectionFrame > 1)
+ img = LoadAnimatedGifFrame(tmp, selectionFrame, &transp);
+
+ if (img == NULL)
+ img = (HBITMAP) CallService(MS_AV_LOADBITMAP32, (WPARAM) &transp, (LPARAM) tmp);
+ }
if (img == NULL)
return;
diff --git a/Plugins/emoticons/emoticons.dsp b/Plugins/emoticons/emoticons.dsp
index 2628749..3714cab 100644
--- a/Plugins/emoticons/emoticons.dsp
+++ b/Plugins/emoticons/emoticons.dsp
@@ -164,6 +164,10 @@ SOURCE=.\commons.h
# End Source File
# Begin Source File
+SOURCE=..\utils\ContactAsyncQueue.h
+# End Source File
+# Begin Source File
+
SOURCE=.\m_emoticons.h
# End Source File
# Begin Source File
@@ -208,6 +212,10 @@ SOURCE=.\resource.rc
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
+SOURCE=..\utils\ContactAsyncQueue.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\emoticons.cpp
# End Source File
# Begin Source File
diff --git a/Plugins/emoticons/flash9e.tlh b/Plugins/emoticons/flash9e.tlh
new file mode 100644
index 0000000..0b210be
--- /dev/null
+++ b/Plugins/emoticons/flash9e.tlh
@@ -0,0 +1,338 @@
+// Created by Microsoft (R) C/C++ Compiler Version 12.00.8964.0 (367ef8f2).
+//
+// c:\desenvolvimento\miranda\plugins\emoticons\flash\debug\flash9e.tlh
+//
+// C++ source equivalent of Win32 type library c:\\windows\\system32\\macromed\\flash\\flash9e.ocx
+// compiler-generated file created 03/08/08 at 11:22:11 - DO NOT EDIT!
+
+#pragma once
+#pragma pack(push, 8)
+
+#include <comdef.h>
+
+//
+// Forward references and typedefs
+//
+
+struct __declspec(uuid("d27cdb6c-ae6d-11cf-96b8-444553540000"))
+/* dual interface */ IShockwaveFlash;
+struct __declspec(uuid("d27cdb6d-ae6d-11cf-96b8-444553540000"))
+/* dispinterface */ _IShockwaveFlashEvents;
+struct /* coclass */ ShockwaveFlash;
+struct __declspec(uuid("d27cdb70-ae6d-11cf-96b8-444553540000"))
+/* interface */ IFlashFactory;
+struct __declspec(uuid("d27cdb72-ae6d-11cf-96b8-444553540000"))
+/* interface */ IFlashObjectInterface;
+struct __declspec(uuid("a6ef9860-c720-11d0-9337-00a0c90dcaa9"))
+/* interface */ IDispatchEx;
+struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa"))
+/* interface */ IServiceProvider;
+struct /* coclass */ FlashObjectInterface;
+
+//
+// Smart pointer typedef declarations
+//
+
+_COM_SMARTPTR_TYPEDEF(IShockwaveFlash, __uuidof(IShockwaveFlash));
+_COM_SMARTPTR_TYPEDEF(_IShockwaveFlashEvents, __uuidof(IDispatch));
+_COM_SMARTPTR_TYPEDEF(IFlashFactory, __uuidof(IFlashFactory));
+_COM_SMARTPTR_TYPEDEF(IDispatchEx, __uuidof(IDispatchEx));
+_COM_SMARTPTR_TYPEDEF(IFlashObjectInterface, __uuidof(IFlashObjectInterface));
+_COM_SMARTPTR_TYPEDEF(IServiceProvider, __uuidof(IServiceProvider));
+
+//
+// Type library items
+//
+
+struct __declspec(uuid("d27cdb6c-ae6d-11cf-96b8-444553540000"))
+IShockwaveFlash : IDispatch
+{
+ //
+ // Raw methods provided by interface
+ //
+
+ virtual HRESULT __stdcall get_ReadyState (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall get_TotalFrames (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall get_Playing (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Playing (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_Quality (
+ int * pVal ) = 0;
+ virtual HRESULT __stdcall put_Quality (
+ int pVal ) = 0;
+ virtual HRESULT __stdcall get_ScaleMode (
+ int * pVal ) = 0;
+ virtual HRESULT __stdcall put_ScaleMode (
+ int pVal ) = 0;
+ virtual HRESULT __stdcall get_AlignMode (
+ int * pVal ) = 0;
+ virtual HRESULT __stdcall put_AlignMode (
+ int pVal ) = 0;
+ virtual HRESULT __stdcall get_BackgroundColor (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall put_BackgroundColor (
+ long pVal ) = 0;
+ virtual HRESULT __stdcall get_Loop (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Loop (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_Movie (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Movie (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_FrameNum (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall put_FrameNum (
+ long pVal ) = 0;
+ virtual HRESULT __stdcall SetZoomRect (
+ long left,
+ long top,
+ long right,
+ long bottom ) = 0;
+ virtual HRESULT __stdcall Zoom (
+ int factor ) = 0;
+ virtual HRESULT __stdcall Pan (
+ long x,
+ long y,
+ int mode ) = 0;
+ virtual HRESULT __stdcall Play ( ) = 0;
+ virtual HRESULT __stdcall Stop ( ) = 0;
+ virtual HRESULT __stdcall Back ( ) = 0;
+ virtual HRESULT __stdcall Forward ( ) = 0;
+ virtual HRESULT __stdcall Rewind ( ) = 0;
+ virtual HRESULT __stdcall StopPlay ( ) = 0;
+ virtual HRESULT __stdcall GotoFrame (
+ long FrameNum ) = 0;
+ virtual HRESULT __stdcall CurrentFrame (
+ long * FrameNum ) = 0;
+ virtual HRESULT __stdcall IsPlaying (
+ VARIANT_BOOL * Playing ) = 0;
+ virtual HRESULT __stdcall PercentLoaded (
+ long * percent ) = 0;
+ virtual HRESULT __stdcall FrameLoaded (
+ long FrameNum,
+ VARIANT_BOOL * loaded ) = 0;
+ virtual HRESULT __stdcall FlashVersion (
+ long * version ) = 0;
+ virtual HRESULT __stdcall get_WMode (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_WMode (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_SAlign (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_SAlign (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_Menu (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Menu (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_Base (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Base (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_Scale (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Scale (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_DeviceFont (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_DeviceFont (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_EmbedMovie (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_EmbedMovie (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_BGColor (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_BGColor (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_Quality2 (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_Quality2 (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall LoadMovie (
+ int layer,
+ BSTR url ) = 0;
+ virtual HRESULT __stdcall TGotoFrame (
+ BSTR target,
+ long FrameNum ) = 0;
+ virtual HRESULT __stdcall TGotoLabel (
+ BSTR target,
+ BSTR label ) = 0;
+ virtual HRESULT __stdcall TCurrentFrame (
+ BSTR target,
+ long * FrameNum ) = 0;
+ virtual HRESULT __stdcall TCurrentLabel (
+ BSTR target,
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall TPlay (
+ BSTR target ) = 0;
+ virtual HRESULT __stdcall TStopPlay (
+ BSTR target ) = 0;
+ virtual HRESULT __stdcall SetVariable (
+ BSTR name,
+ BSTR value ) = 0;
+ virtual HRESULT __stdcall GetVariable (
+ BSTR name,
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall TSetProperty (
+ BSTR target,
+ int property,
+ BSTR value ) = 0;
+ virtual HRESULT __stdcall TGetProperty (
+ BSTR target,
+ int property,
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall TCallFrame (
+ BSTR target,
+ int FrameNum ) = 0;
+ virtual HRESULT __stdcall TCallLabel (
+ BSTR target,
+ BSTR label ) = 0;
+ virtual HRESULT __stdcall TSetPropertyNum (
+ BSTR target,
+ int property,
+ double value ) = 0;
+ virtual HRESULT __stdcall TGetPropertyNum (
+ BSTR target,
+ int property,
+ double * pVal ) = 0;
+ virtual HRESULT __stdcall TGetPropertyAsNumber (
+ BSTR target,
+ int property,
+ double * pVal ) = 0;
+ virtual HRESULT __stdcall get_SWRemote (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_SWRemote (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_FlashVars (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_FlashVars (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_AllowScriptAccess (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_AllowScriptAccess (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_MovieData (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_MovieData (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_InlineData (
+ IUnknown * * ppIUnknown ) = 0;
+ virtual HRESULT __stdcall put_InlineData (
+ IUnknown * ppIUnknown ) = 0;
+ virtual HRESULT __stdcall get_SeamlessTabbing (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_SeamlessTabbing (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall EnforceLocalSecurity ( ) = 0;
+ virtual HRESULT __stdcall get_Profile (
+ VARIANT_BOOL * pVal ) = 0;
+ virtual HRESULT __stdcall put_Profile (
+ VARIANT_BOOL pVal ) = 0;
+ virtual HRESULT __stdcall get_ProfileAddress (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_ProfileAddress (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_ProfilePort (
+ long * pVal ) = 0;
+ virtual HRESULT __stdcall put_ProfilePort (
+ long pVal ) = 0;
+ virtual HRESULT __stdcall CallFunction (
+ BSTR request,
+ BSTR * response ) = 0;
+ virtual HRESULT __stdcall SetReturnValue (
+ BSTR returnValue ) = 0;
+ virtual HRESULT __stdcall DisableLocalSecurity ( ) = 0;
+ virtual HRESULT __stdcall get_AllowNetworking (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_AllowNetworking (
+ BSTR pVal ) = 0;
+ virtual HRESULT __stdcall get_AllowFullScreen (
+ BSTR * pVal ) = 0;
+ virtual HRESULT __stdcall put_AllowFullScreen (
+ BSTR pVal ) = 0;
+};
+
+struct __declspec(uuid("d27cdb6d-ae6d-11cf-96b8-444553540000"))
+_IShockwaveFlashEvents : IDispatch
+{};
+
+struct __declspec(uuid("d27cdb6e-ae6d-11cf-96b8-444553540000"))
+ShockwaveFlash;
+ // [ default ] interface IShockwaveFlash
+ // [ default, source ] dispinterface _IShockwaveFlashEvents
+
+struct __declspec(uuid("d27cdb70-ae6d-11cf-96b8-444553540000"))
+IFlashFactory : IUnknown
+{};
+
+struct __declspec(uuid("a6ef9860-c720-11d0-9337-00a0c90dcaa9"))
+IDispatchEx : IDispatch
+{
+ //
+ // Raw methods provided by interface
+ //
+
+ virtual HRESULT __stdcall GetDispID (
+ BSTR bstrName,
+ unsigned long grfdex,
+ long * pid ) = 0;
+ virtual HRESULT __stdcall RemoteInvokeEx (
+ long id,
+ unsigned long lcid,
+ unsigned long dwFlags,
+ struct DISPPARAMS * pdp,
+ VARIANT * pvarRes,
+ struct EXCEPINFO * pei,
+ struct IServiceProvider * pspCaller,
+ unsigned int cvarRefArg,
+ unsigned int * rgiRefArg,
+ VARIANT * rgvarRefArg ) = 0;
+ virtual HRESULT __stdcall DeleteMemberByName (
+ BSTR bstrName,
+ unsigned long grfdex ) = 0;
+ virtual HRESULT __stdcall DeleteMemberByDispID (
+ long id ) = 0;
+ virtual HRESULT __stdcall GetMemberProperties (
+ long id,
+ unsigned long grfdexFetch,
+ unsigned long * pgrfdex ) = 0;
+ virtual HRESULT __stdcall GetMemberName (
+ long id,
+ BSTR * pbstrName ) = 0;
+ virtual HRESULT __stdcall GetNextDispID (
+ unsigned long grfdex,
+ long id,
+ long * pid ) = 0;
+ virtual HRESULT __stdcall GetNameSpaceParent (
+ IUnknown * * ppunk ) = 0;
+};
+
+struct __declspec(uuid("d27cdb72-ae6d-11cf-96b8-444553540000"))
+IFlashObjectInterface : IDispatchEx
+{};
+
+/*
+struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa"))
+IServiceProvider : IUnknown
+{
+ //
+ // Raw methods provided by interface
+ //
+
+ virtual HRESULT __stdcall RemoteQueryService (
+ GUID * guidService,
+ GUID * riid,
+ IUnknown * * ppvObject ) = 0;
+};
+*/
+
+struct __declspec(uuid("d27cdb71-ae6d-11cf-96b8-444553540000"))
+FlashObjectInterface;
+ // [ default ] interface IFlashObjectInterface
+
+#pragma pack(pop)
diff --git a/Plugins/emoticons/selwin.cpp b/Plugins/emoticons/selwin.cpp
index 0229609..9aba03c 100644
--- a/Plugins/emoticons/selwin.cpp
+++ b/Plugins/emoticons/selwin.cpp
@@ -2,8 +2,9 @@
#define MIN_COLS 5
-#define MAX_LINES 5
-#define BORDER 5
+#define MAX_LINES 8
+#define MAX_COLS 12
+#define BORDER 3
struct EmoticonSelectionData
@@ -236,7 +237,7 @@ INT_PTR CALLBACK EmoticonSeletionDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPA
ssd->cols = num_emotes / MAX_LINES;
if (num_emotes % MAX_LINES != 0)
ssd->cols++;
- ssd->cols = max(ssd->cols, MIN_COLS);
+ ssd->cols = min(max(ssd->cols, MIN_COLS), MAX_COLS);
ssd->lines = num_emotes / ssd->cols;
if (num_emotes % ssd->cols != 0)
@@ -445,6 +446,7 @@ INT_PTR CALLBACK EmoticonSeletionDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPA
// Copy buffer to screen
BitBlt(hdc_orig, rc.left, rc.top, rc.right - rc.left,
rc.bottom - rc.top, hdc, rc.left, rc.top, SRCCOPY);
+
DeleteDC(hdc);
DeleteObject(hBmp);
diff --git a/Plugins/emoticons/selwin.h b/Plugins/emoticons/selwin.h
index b55b4c6..9a8ae23 100644
--- a/Plugins/emoticons/selwin.h
+++ b/Plugins/emoticons/selwin.h
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA.
int ShowSelectionService(WPARAM wParam, LPARAM lParam);
+HBITMAP CreateBitmap32(int cx, int cy);
#endif // __SELWIN_H__