What control do you want to provide in your GUI. GPIOApp example does not have an USB interface to communicate with the host.
a) You can write your FX3 firmware with some vendor command and vendor interface. When the GUI sends any of these Vendor commands, the FX3 firmware will handle the next. Ex. You send a vendor command from the GUI, then the FX3 detects this command and toggle an Led. So, you will have to define all the criteria the GUI will send in the firmware to handle it. To see, how to handle vendor command, you can refer to USBFlashProg example in the SDK.
b) The GUI you can develop on you own. We have couple of applications, which you can refer. In the FX3 SDK, you can find the control center and streamer application: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application
I was hoping to control GPIO pins with the GUI (one button would set a certain pin high, another button would set it low, etc.). Is there a feature built in to Eclipse that would help me create this GUI? If not, what platform would you recommend to create the GUI with so it could be used with Eclipse? In addition, should my code model that of the USBFlashProg example?
Building a GUI for setting the status of GPIO can be done using Vendor commands. The applicaiton can send a Vendor command to the FX3 device. Once the device receives the vendor command, it can check for the command code, and then set the GPIO status. You can refer to the USBBulkSourceSink firmware to seee how we have implemented vendor command handling in the firmware. Please check for bReqType of CY_U3P_USB_VENDOR_RQT. Let us know if you find any difficulty.